Javaでモジュール化したプロジェクトを5層構築します。
1番目の層 - ビーン(クラス)
2番目の層 - DaoDB(クラス)
3-RD層 - ダオ(インターフェイス) - それは(ファサードからDaoDBに)明るいだ
4層目 - ファサード(クラス) - ビジネスロジック と
5番目の層 - JAX-RSおよびJSON
と動的Webプロジェクト私は5番目の層の私のログイン方法に問題があります。Java EE/RESTful - JAX-RSとJSONがClass.forName(... ClientDriver)のSQLExceptionをスローする
@Path("/web-project")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class AdminService{
private Company companyBean;
private AdminFacade getAdminFacade(HttpServletRequest req) {
AdminFacade facade = ((AdminFacade) req.getSession().getAttribute("adminFacade"));
return facade;
}
@Path("/login")
@POST
public Message adminLogin(LogInBean lgb, @Context HttpServletRequest req) throws UserSystemException, ClassNotFoundException {
// Class.forName("org.apache.derby.jdbc.ClientDriver");
CouponClientFacade facade=CouponSystem.getInstance().login(lgb.getLogin(), lgb.getPassword(), "Admin");
HttpSession session = req.getSession(true);
session.setAttribute("adminFacade", facade);
return new Message("logged in successfully as admin");
}
.....
.....
データベースの問題 - ClientDriver。新しい会社を追加しようとするとSQLExceptionが発生します。私はClass.forName("org.apache.derby.jdbc.ClientDriver");
を使用していない場合は、私は他の人(CRUD)メソッドを実行しようとすると - 例えば
@Path("/createnewcompany")
@POST
public Message addCompany(Company cb, @Context HttpServletRequest req) throws UserSystemException {
getAdminFacade(req).createCompany(cb);
return new Message("created a new company: " + cb.getCompName());
}
私はファサード層に移動し、すべてのCRUDを実行しようとした場合、私は、例外を取得けど方法彼らはうまく動作します。
JAX-RSが最初の層で書かれたクライアントドライバで動作しないのはなぜですか?
JAX-RSとJSONは、クライアントログインメソッドでドライバの実装を明示的に記述すると問題なく動作します。Class.forName("org.apache.derby.jdbc.ClientDriver");
のみです。
ありがとうございました。
はい、それは事実です。 – morris
私は// Class.forName( "org.apache.derby.jdbc.ClientDriver")からコメントを削除します。 システムはうまく動作します。私は良い方法は私のWebモジュールでClientDriverと一緒に使ってはいけないと思います。私がコメントしたら、例外があります。 – morris