我一直试图从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
如何解决此错误?
答案 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
as an applet parameter
<applet ..><param name='the.name' value='bidd.data.ejb.UserFacadeLocal'>
</applet>
in an application resource file
param
来识别文件。