我希望在没有应用程序服务器的独立JavaFx客户端中部署有状态EJB Bean。 EJB类具有实体管理器引用并对db进行事务。 Project是一个maven原型,我在一个包中添加了EJB类。 从我的主要方法,我做这样的JNDI查找
Properties props = new Properties();
props.put(EJBContainer.APP_NAME, "testejb");
props.put(EJBContainer.MODULES, new File("target/classes"));
EJBContainer ec = EJBContainer.createEJBContainer(props);
Context ctx = ec.getContext();
myEjbClass = (MyEjbClass) ctx.lookup("java:global/testejb/MyEjbClass");
我成为异常javax.ejb.EJBException:没有可用的EJBContainer提供程序:找不到提供程序名称。我已将javaee-7和glassfish-embedded-shell添加到我的pom.xml.Why?
答案 0 :(得分:0)
您是否在程序中配置并启动了嵌入式Glassfish?
这可以通过以下方式完成:
BootstrapProperties bootstrapProperties = new BootstrapProperties();
bootstrapProperties.setInstallRoot("C:\\applicationserverdir");
GlassFishRuntime glassfishRuntime = GlassFishRuntime.bootstrap(bootstrapProperties);
GlassFishProperties glassfishProperties = new GlassFishProperties();
glassfishProperties.setInstanceRoot("C:\\applicationserverdir\\domains\\myJavaFXAppDomain");
glassfishProperties.setPort("http-listener", 8080);
glassfishProperties.setPort("https-listener", 8181);
GlassFish glassfish = glassfishRuntime.newGlassFish(glassfishProperties);
glassfish.start();
有关设置嵌入式Glassfish的更多信息,请访问:http://docs.oracle.com/cd/E18930_01/html/821-2424/giijw.html#scrolltoc
另外,你使用哪种Maven原型?