JBuilder 2005では、Web Moduleで参照されていないclassファイルのデフォルトは、WEB-INF/classesに配備されません.


今日Factory Classを書いて、interfaceと実現するclassを組み合わせて...ビジネスロジックで呼び出すには...次のようになります.

      
      
      
      
< 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のコンフィギュレーションオプションを半日めくって、やっと見つけました...下の図を見て、そのデフォルトのオプションを削除すればいいです!