JavaFx客户端应用程序中的EJB独立部署

时间:2014-01-30 23:28:29

标签: java java-ee ejb javafx

我希望在没有应用程序服务器的独立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?

1 个答案:

答案 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原型?