JBuilder 2005では、Web Moduleで参照されていないclassファイルのデフォルトは、WEB-INF/classesに配備されません.
今日Factory Classを書いて、interfaceと実現するclassを組み合わせて...ビジネスロジックで呼び出すには...次のようになります.
ビジネスロジックでは、次のように呼び出されます.
しかしJBuilderが実行している間にEmployeeServiceImplが報告されました.classが見つからない...うっとうしい...見てみるとJBuilder 2005はMakeの時,${Project_Home}/classesでEmployeeServiceImplを生成していた.classファイルは、${Project_Home}/${WebModule_Home}/WEB-INF/classesの下に配置されていません!
半日分析したところ、IEmployeeServiceが呼び出されているのに対し、EmployeeServiceImplにはコード表示呼び出しがなく、Factory Classがconfig xmlを読み込むことで作成されたのか、それとも...これが肝心???
JBuilder 2005のコンフィギュレーションオプションを半日めくって、やっと見つけました...下の図を見て、そのデフォルトのオプションを削除すればいいです!
<
managers
>
<
manager
id
="DbConnectionManager"
>
<
service
>
tutorial.db.IDbConnectionManager
</
service
>
<
service-impl
>
tutorial.db.impl.DbConnectionManagerImpl
</
service-impl
>
</
manager
>
<
manager
id
="EmployeeService"
>
<
service
>
tutorial.service.iface.IEmployeeService
</
service
>
<
service-impl
>
tutorial.service.impl.EmployeeServiceImpl
</
service-impl
>
</
manager
>
</
mamagers
>
ビジネスロジックでは、次のように呼び出されます.
BizFactory bizFactory
=
new
BizFactory();
Employee employee
=
new
Employee();
employee.setEmpNumber(
"
9527");
//
... ...
IEmployeeService empService
=
(IEmployeeService) bizFactory.create(
"
EmployeeService
"
);
empService.update(employee);
しかしJBuilderが実行している間にEmployeeServiceImplが報告されました.classが見つからない...うっとうしい...見てみるとJBuilder 2005はMakeの時,${Project_Home}/classesでEmployeeServiceImplを生成していた.classファイルは、${Project_Home}/${WebModule_Home}/WEB-INF/classesの下に配置されていません!
半日分析したところ、IEmployeeServiceが呼び出されているのに対し、EmployeeServiceImplにはコード表示呼び出しがなく、Factory Classがconfig xmlを読み込むことで作成されたのか、それとも...これが肝心???
JBuilder 2005のコンフィギュレーションオプションを半日めくって、やっと見つけました...下の図を見て、そのデフォルトのオプションを削除すればいいです!