アプレット内からEJBを挿入/使用しようとしましたが、成功しませんでした。新しいJavaEEEnterpriseアプリケーションを作成しました。Glassfish3とNetBeans7.1を使用しています
主な問題はインスタンス化InitialContext
です。
これが私の豆の宣言です。
@Stateless
public class UserFacade implements UserFacadeLocal {
@PersistenceContext(unitName = "MetroEntitiesPU")
private EntityManager em;
@Remote
public interface UserFacadeLocal {
gf-client.jar
クラスパスを含め、次のコードを使用することで、スタンドアロンのJavaクライアントを作成することができました。
try {
UserFacadeLocal ufl = (UserFacadeLocal) new InitialContext()
.lookup("bidd.data.ejb.UserFacadeLocal");
System.out.println("FROM EJB COUNT: " + String.valueOf(ufl.count()));
} catch (NamingException ex) {
Logger.getLogger(JavaApplication3.class.getName())
.log(Level.SEVERE, null, ex);
}
問題は、アプレットで同じことをしようとしているときです。アプレットはjarファイルにコンパイルされ、netbeansのエンタープライズアプリケーションの一部であるjspWebサイトからロードされます。
これは、次のエラーを与えるinitメソッドの行です。
UserFacadeLocal ufl = (UserFacadeLocal) new InitialContext()
.lookup("bidd.data.ejb.UserFacadeLocal");
エラー
Need to specify class name in environment or system property,
or as an applet parameter,
or in an application resource file: java.naming.factory.initial
このエラーを解決する方法は?