我有一个EJB和一个使用它的Web服务。我现在想编写一个简单的TCP服务器作为web服务的替代方案,但我不想重写EJB中的逻辑和它下面的数据库层。所以我写了一个简单的TCP服务器作为单例,并注解@Startup。该应用程序可以运行,但它似乎也会终止JBoss管理控制台并产生大量超时异常。我怀疑原因是服务器bean中的无限while循环,这是接受传入连接所必需的。有没有办法解决这个问题,或者将EJB作为服务器只是一个坏主意?我想替代方案是编写一个独立的Java应用程序并在我的业务逻辑EJB上使用远程接口(interface),尽管这似乎有点麻烦.... 最佳答
使用Glassfish,我可以设置一个字符串jndi条目:JNDIname:"com/xyzcompany/echo/EchoServiceBean/viewName"FactoryClass:org.glassfish.resources.custom.factory.PrimitivesAndStringFactoryProperties:value="Testing123"然后我可以将这个容器配置的字符串注入(inject)到我的EJB中:@Resource(lookup="com/xyzcompany/echo/EchoServiceBean/viewName")Stringv
使用NetBeans,我在包含main()的类中执行以下操作,它起作用了:importjavax.ejb.EJB;publicclassMaster{@EJBTestBeanARemotex;publicstaticvoidmain(String[]args){Masterm=newMaster();m.doStuff();}//doStuffincludesx,butitworks,sowhocares....但是,如果我在一个被调用的类中这样做,它就会失败。似乎被调用的类要求我避免使用注释,而是使用整个InitialContext()设置。StringtestRun(Stringa
我正在使用EJB3.0开发一个简单的应用程序,使用OpenEJB进行部署并使用Eclipse作为IDE。我在Eclipse中将项目创建为“动态Web应用程序”。当我尝试创建第一个无状态sessionbean时,我意识到无法解析@Remote注释。解决这个问题的正确方法是什么?删除项目并创建一个新的“企业应用程序项目”(这似乎很重,所以我不确定是否要朝这个方向发展)?删除项目并创建一个EJB项目(这似乎不对,因为我相信这样的项目只会让我捆绑应用程序的EJB部分)?将一些库添加到我现有的项目中(是否有用于EJB3.x的库包)?向我现有的项目添加一个方面(我试图查看是否可以添加一个方面,但我
我一直在阅读有关JPA和EJB3的文章,并想确认我对它们关系的理解是正确的。这是我想我知道的...JPA是一种已被许多供应商实现的规范,包括:JBoss/hibernateOracle/TopLinkEssentials(现为EclipseLink)Apache/OpenJPAEJB3是在应用服务器中实现的规范,包括:玻璃鱼J老板这个对吗? 最佳答案 JavaEE5中引入的JavaPersistenceAPI是EJB3的一个子集,并取代了EJB2.0CMP的持久性解决方案。JPA1.0已被定义为EJB3.0规范(JSR220)的一部
我的配置是:Wildfly8.2.0,Weld是否可以在Bean中注入(inject)而不是在CDI的接口(interface)中注入(inject)?@StatelessclassBeanimplementsIBean{...}interfaceIBean{...}@SessionScopedclassScoped{@InjectBeanbean;//Fail@InjectIBeaniBean;//OK}编辑:更多信息在我之前的问题中:StatelessEJBimplementsinterfaceinjectionfailed 最佳答案
我在web.xml中添加了以下内容:ejb/userManagerBeanSessiongha.ywk.name.entry.ejb.usermanager.UserManagerHomewhatshouldgohere??以下java代码给了我NamingException:publicUserManagergetUserManager()throwsHUDException{StringROLE_JNDI_NAME="ejb/userManagerBean";try{Propertiesprops=System.getProperties();Contextctx=newIniti
我是JavaEE的新手。目前,我正在阅读SunMicrosystems的JavaEE6教程,第1卷(基本概念测试版)。为了摆脱单调的阅读,我经常玩一些其他人编写的JavaEE项目/代码。我来自东南部。我的脑袋里仍然充满了SE。在SE(两层应用程序)中,我使用DATABASE_URL="jdbc:mysql://something.db_server.com/db_name"这就是我的客户端知道数据库服务器位置的方式。在我看到的一个JavaEE示例中//AccessJNDIInitialContext.Propertiesp=newProperties();p.put("java.nam
引自EJB规范:Ifthebeanmethodencountersasystemexceptionorerror,itshouldsimplypropagatetheerrorfromthebeanmethodtothecontainer(i.e.,thebeanmethoddoesnothavetocatchtheexception).但是我不明白。这是否意味着我不应该捕获所有类型的异常(即trycatchException类)并将其作为我的应用程序异常重新抛出?一个更清晰的例子:publicvoidbeanMethodthrowsMyApplicationException{try
我有一个旧的J2EE应用程序(J2EE1.3),它打包成一个EAR,在EAR中,有WAR和EJBJAR。现在,其中一个EJBJAR需要引用一些第3方库JAR,那么打包这些JAR的最佳位置是什么?如何打包? 最佳答案 它们放在ear文件的根目录中,或者您可以创建一个lib目录来存储它们。任何需要引用它们的项目(EJB或WAR)都必须将它们包含在类路径:list文件。耳内容物-log4j.jar-lib-commons-lang.jar-MyEJBProj.jar-MyWAR.warMyEJBProj内容-classes-META-IN