ejb (jar) プロジェクトと Web (war) プロジェクトをラップする ear で構成される NetBeans Enterprise アプリケーションを作成しました。
Web プロジェクトにサーブレットがあり、その中で ejb プロジェクトの EJB の 1 つを使用したいと考えています。
@WebServlet(name = "Shop", urlPatterns = {"/ajax/add_to_cart"})
public class ShoppingCartServlet extends HttpServlet {
@EJB
ShoppingCartFacade shoppingCartFacade
NetBeans で、ShoppingCartFacade の「シンボルが見つかりません」というエラーが発生します。「兄弟」ejb プロジェクトにあるにもかかわらず、Netbeans は ShoppingCartFacade のパッケージを自動的に見つけることができません。サーブレットにパッケージ名を手動で入力し始めると、つまり.
import com.myproject....
表示されているパッケージは、Web プロジェクト自体のパッケージのみであることがわかります。
com.myproject.web.my_web_related_package
見える
一方
com.myproject.ejb.my_ejb_related_package
見えない
ビジネス ロジックを ejb に配置し、サーブレットなどの Web リソースから呼び出すことができるように、ejb プロジェクトと Web プロジェクトを分離することの全体的なポイントとして、EJB を Web プロジェクトに挿入することは確かに簡単である必要があります。
では、Web (war) アプリケーションで EJB をどのように使用すればよいのでしょうか?