在applet中使用EJB

时间:2012-04-26 09:36:25

标签: java applet ejb

我一直试图从applet中注入/使用我的EJB而没有成功。我创建了一个新的Java EE Enterprise应用程序。我正在使用glassfish 3& netbeans 7.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);
}

问题是我想在applet中做同样的事情。 applet在jar文件中编译,然后从jsp网站加载,该网站是netbeans中企业应用程序的一部分。

这是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

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

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
  • environment or system property
    对公开部署的小程序 1 不实用。
  • as an applet parameter
    应该是微不足道的 1 。类似的东西:
    <applet ..><param name='the.name' value='bidd.data.ejb.UserFacadeLocal'> </applet>
  • in an application resource file
    可能可行,但可能需要添加param来识别文件。

  1. applet:这同样适用于JWS应用程序。这是我实际为此部署推荐的内容。