【问题标题】:using EJB from within an applet在小程序中使用 EJB
【发布时间】:2012-04-26 18:05:46
【问题描述】:

我一直在尝试从小程序中注入/使用我的 EJB,但没有成功。我创建了一个新的 Java EE Enterprise 应用程序。我正在使用 glassfish 3 和 netbeans 7.1

主要问题是实例化InitialContext

这是我的 bean 的声明。

   @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 文件,然后从 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

如何解决这个错误?

【问题讨论】:

  • “我已经能够创建一个独立的 java 客户端” 1) 使用Java Web Start 从链接启动它会更容易。 JWS 还将提供更好的最终用户体验。 2)它是“Java”,而不是“java”。 3) 不要包含诸如“谢谢”或信号之类的噪音。比如“特伦斯”。对于后者,编辑your profile。顺便说一句,“Terence”比“user1358278”更好,也更容易记住。 ;)

标签: java applet ejb


【解决方案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 应用程序。这是我实际推荐的部署方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多