问题标签 [java-ee-6]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3170 浏览

hibernate - 将 JPA 实体命名为“组”是否非法?

我正在开发一个 JEE6 应用程序,使用 JPA 2.0 和 Hibernate 3.5.2-Final 作为提供者(和 MySQL 5.1.41)。我的应用服务器是 Glassfish V3.0.1。我已经有一个包含一些实体和关系的工作 CRUD 应用程序。

现在我添加了一个名为“Group”的(非常简单的)实体。实体类如下所示:

当然我也把它加到了persistence.xml中,比如<class>model.Group</class>. 我的 persistence.xml 在部署时删除并重新创建所有表。

因此,当我部署我的应用程序时,会生成我所有实体的表,但表组除外。在休眠日志中,我发现了以下错误(这不会阻止应用程序的部署)

现在,当我将实体重命名为“MyGroup”之类的名称(属性保持不变)时,相应地更改 persistence.xml,并重新部署我的应用程序,成功创建了“MyGroup”表!我在日志中发现以下几行表明 MyGroup 已正确创建:

有人知道问题是什么吗?好的,我可以将 Group 重命名为 MyGroup,但我真的很想知道这里发生了什么。我现在应该有什么限制,比如“不要调用实体组”吗?但如果是这样,为什么我的错误如此不清楚?

0 投票
3 回答
11100 浏览

jakarta-ee - Weblogic 11g 和 JavaEE 6

我想知道 Weblogic 11g 是否已经支持 JavaEE 6。由于我在 google 中没有找到任何关于它的信息,我认为它没有,直到我发现一条评论说 Oracle WebLogic Server 11g 是 Java EE 6 投诉。

尽管如此,我还没有找到支持 Java EE 6 新特性的模块。

有人对此有所了解吗?

0 投票
2 回答
8821 浏览

java - WEB-INF/classes 中 war 包中的 EJB 3.1 - javax.ejb.CreateException:无法创建无状态 EJB

我想,我误解了在war包中打包ejb bean的规则。

目标:我想在war包中使用ejb bean。

场景:我的战争中有一些豆子:

它成功部署到 glassfish 服务器(ogs 3.0.1):

[#|2010-07-02T16:53:59.728+0300|INFO|oracle-glassfish3.0.1|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=36;_ThreadName=Thread-1 ;|EJB RegistrationServiceBean 的可移植 JNDI 名称:[java:global/oasys/hydra/RegistrationServiceBean!ua.co.oasys.hydra.beans.RegistrationServiceBean, java:global/oasys/hydra/RegistrationServiceBean]|#]

但是当调度程序启动时,我得到:

[#|2010-07-02T16:54:20.004+0300|警告|oracle-glassfish3.0.1|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=38;_ThreadName=Thread-1 ;|在调用 EJB RegistrationServiceBean 方法时发生系统异常 public void ua.co.oasys.hydra.beans.RegistrationServiceBean.baseRegistration() javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException: 不能在 com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:448) 在 com.sun.ejb.containers.BaseContainer.getContext(BaseContainer.java:2467) 在 com.sun.ejb.containers 创建无状态 EJB。 BaseContainer.preInvoke(BaseContainer.java:1860) 在 com.sun.ejb.containers.BaseContainer.callEJBTimeout(BaseContainer.java:3962) 在 com.sun.ejb.containers.EJBTimerService。com.sun.ejb.containers.EJBTimerService.access$100(EJBTimerService.java:98) 上的 deliverTimeout(EJBTimerService.java:1667) com.sun.ejb.containers.EJBTimerService$TaskExpiredWork.run(EJBTimerService.java:2485) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 在 java.util.concurrent.FutureTask.run(FutureTask. java:138) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 在 java.lang.Thread.run (Thread.java:619) 原因:javax.ejb.EJBException:javax.ejb.CreateException:无法在 com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory 创建无状态 EJB。在 com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:443) 处创建 (StatelessSessionContainer.java:720) ... 12 更多原因:javax.ejb.CreateException: 无法在 com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:528) 在 com.sun.ejb.containers.StatelessSessionContainer.access 创建无状态 EJB $000(StatelessSessionContainer.java:90) at com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:718) ... 14 更多原因:java.util.concurrent.ConcurrentHashMap 的 java.lang.NullPointerException .get(ConcurrentHashMap.java:768) 在 org.jboss.weld.manager.BeanManagerImpl。getBean(BeanManagerImpl.java:1171) at org.jboss.weld.manager.BeanManagerImpl.getBean(BeanManagerImpl.java:132) at org.glassfish.weld.services.JCDIServiceImpl._createJCDIInjectionContext(JCDIServiceImpl.java:145) at org.glassfish .weld.services.JCDIServiceImpl.createJCDIInjectionContext(JCDIServiceImpl.java:122) 在 com.sun.ejb.containers.BaseContainer.createEjbInstanceAndContext(BaseContainer.java:1616) 在 com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java :469) ... 还有 16 个 |#]java:122) 在 com.sun.ejb.containers.BaseContainer.createEjbInstanceAndContext(BaseContainer.java:1616) 在 com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:469) ... 16 更多 |#]java:122) 在 com.sun.ejb.containers.BaseContainer.createEjbInstanceAndContext(BaseContainer.java:1616) 在 com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:469) ... 16 更多 |#]

所有应用程序都打包在 ear 中,里面有 war,如果我在 ejb-jar 中部署 ejb 效果很好,但这不是我想要的。

删除焊接依赖项后,部署期间出现异常:

com.sun.enterprise.admin.cli.CommandException:远程失败:加载应用程序时出现异常:org.glassfish.deployment.common.DeploymentException:由 java.lang.NoClassDefFoundError:ua/co/oasys/hydra/beans/RegistrationServiceBean

它类似于 glassfish bug,但我不确定。


更新:web.xml:

NoClassDefFoundError 异常:

[#|2010-07-04T16:16:26.401+0300|SEVERE|oracle-glassfish3.0.1|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=25;_ThreadName=Thread-1 ;|加载应用程序时出现异常 org.glassfish.deployment.common.DeploymentException: by java.lang.NoClassDefFoundError: ua/co/oasys/hydra/RegistrationServiceBea at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:167)在 org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:125) 在 org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:224) 在 com.sun.enterprise.v3.server.ApplicationLifecycle .deploy(ApplicationLifecycle.java:338) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183) at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272) at com.sun.enterprise。v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand (CommandRunnerImpl.java:1176) at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java: 1235)在com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)在com.sun .enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204) 在 com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166) 在 com.sun.enterprise.v3.server。HK2Dispatcher.dispath(HK2Dispatcher.java:100) 在 com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245) 在 com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java: 791) 在 com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) 在 com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) 在 com.sun.grizzly.http.DefaultProtocolFilter .execute(DefaultProtocolFilter.java:170) 在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) 在 com.sun.grizzly。 com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) 上的 DefaultProtocolChain.execute(DefaultProtocolChain.java:88)。ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 在 com.sun.grizzly.ContextTask.run(ContextTask.java:69) 在 com.sun.grizzly .util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) 在 java.lang.Thread.run(Thread.java:619 ) 引起:java.lang.RuntimeException:由 java.lang.NoClassDefFoundError: ua/co/oasys/hydra/RegistrationServiceBea 在 javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:344) 在 javassist.util.proxy。 org.jboss.weld.util.Proxies 的 javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:273) 的 ProxyFactory.createClass2(ProxyFactory.java:314)。createProxyClass(Proxies.java:187) at org.jboss.weld.util.Proxies.createProxyClass(Proxies.java:168) at org.jboss.weld.bean.SessionBean.initProxyClass(SessionBean.java:221) at org.jboss .weld.bean.SessionBean.initialize(SessionBean.java:143) 在 org.jboss.weld.bootstrap.AbstractBeanDeployer.deploy(AbstractBeanDeployer.java:110) 在 org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java :151) at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:377) at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:165) ... 30 更多原因:javassist.CannotCompileException : 通过 java.lang.NoClassDefFoundError: ua/co/oasys/hydra/RegistrationServiceBea 在 javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:169) 在 javassist.util.proxy.ProxyFactory。createClass3(ProxyFactory.java:339) ... 40 更多原因:java.lang.NoClassDefFoundError: ua/co/oasys/hydra/RegistrationServiceBea at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader。在 sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 的 java.lang.ClassLoader.defineClass(ClassLoader.java:616) 的 defineClassCond(ClassLoader.java:632)在 java.lang.reflect.Method.invoke(Method.java:597) 在 javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:181) 在 javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:163 ) ... 41 更多原因:com.sun.enterprise.loader 上的 java.lang.ClassNotFoundException: ua.co.oasys.hydra.RegistrationServiceBea。ASURLClassLoader.findClassData(ASURLClassLoader.java:713) 在 com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:626) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 java.lang.ClassLoader .loadClass(ClassLoader.java:248) ... 49 更多 |#]


更新 2:

如果删除/重命名 beans.xml 文件 ejbs 部署成功。


更新 3:

osys.ear

jar xfv ~/Sites/workspace/Intellij_IDEA_9/Oasys/Oasys-ear/target/oasys.ear 创建:META-INF/ 膨胀:META-INF/MANIFEST.MF 创建:lib/ 膨胀:fenix.jar 膨胀:hydra.war膨胀:javax.inject-1.jar 膨胀:jboss-interceptor-api-1.1-CR1.jar 膨胀:jsr250-api-1.0.jar 膨胀:lib/cdi-api-1.0-CR4.jar 膨胀:lib/eclipselink- 2.1.0-SNAPSHOT.jar 膨胀:lib/javax.persistence-2.0.0.jar 膨胀:lib/slf4j-api-1.6.0.jar 膨胀:lib/slf4j-jdk14-1.6.0.jar 膨胀:lib/ utopia.jar 膨胀:lib/weld-logger-1.0.0-CR2.jar 膨胀:META-INF/application.xml
创建:META-INF/maven/ 创建:META-INF/maven/ua.co.oasys/ 创建:META-INF/maven/ua.co.oasys/oasys-ear/ 膨胀:META-INF/maven/ua。 co.oasys/oasys-ear/pom.xml 膨胀:META-INF/maven/ua.co.oasys/oasys-ear/pom.properties

九头蛇战争

jar xfv ~/Sites/workspace/Intellij_IDEA_9/Oasys/Hydra/target/hydra.war 创建:META-INF/ 膨胀:META-INF/MANIFEST.MF 创建:合作伙伴/ 创建:合作伙伴/管理员/
创建:合作伙伴/经理/创建:resources/ 创建:resources/css/
创建:resources/css/sam/ 创建:resources/css/sam/images/ 创建:resources/layout/ 创建:resources/security/ 创建:root/
创建:root/admin/创建:root/bookkeeper/ 创建:root/manager/ 创建:WEB-INF/
创建:WEB-INF/classes/ 创建:WEB-INF/classes/ua/ 创建:WEB-INF/classes/ua/co/ 创建: WEB-INF/classes/ua/co/oasys/
创建:WEB-INF/classes/ua/co/oasys/hydra/
创建:WEB-INF/classes/ua/co/oasys/hydra/common/ 创建:WEB-INF/classes/ua/co/oasys/hydra/i18n/ 创建:WEB-INF/classes/ua/co/oasys/ hydra/mb/ 创建:WEB-INF/classes/ua/co/oasys/hydra/mb/registration/ 创建:WEB-INF/classes/ua/co/oasys/hydra/mb/security/ 创建:WEB-INF/ classes/ua/co/oasys/hydra/mb/ua/ 创建:WEB-INF/classes/ua/co/oasys/hydra/mb/ua/co/ 创建:WEB-INF/classes/ua/co/oasys/ hydra/mb/ua/co/oasys/ 创建:WEB-INF/classes/ua/co/oasys/hydra/mb/ua/co/oasys/hydra/ 创建:WEB-INF/classes/ua/co/oasys/ hydra/mb/ua/co/oasys/hydra/i18n/ 创建:WEB-INF/lib/ 膨胀:html5.html 膨胀:index.xhtml 膨胀:login.xhtml 膨胀:loginError.xhtml 膨胀:合作伙伴/管理员/管理员。 xhtml 膨胀:partner/manager/manager.xhtml 膨胀:partner/partner.xhtml 膨胀:register.xhtml 膨胀:resources/css/cssLayout.css 膨胀:resources/css/default.css 膨胀:resources/css/master.css 膨胀:resources/css/sam/images/sprite.png 膨胀:resources/css/sam /images/ui-bg_flat_0_aaaaaa_40x100.png 膨胀:resources/css/sam/images/ui-bg_flat_75_ffffff_40x100.png 膨胀:resources/css/sam/images/ui-bg_glass_55_fbf9ee_1x400.png 膨胀:resources/css/sam/images/ui- bg_glass_65_ffffff_1x400.png 膨胀:resources/css/sam/images/ui-bg_glass_75_dadada_1x400.png 膨胀:resources/css/sam/images/ui-bg_glass_75_e6e6e6_1x400.png 膨胀:resources/css/sam/images/ui-bg_glass_905_fef1ec_1x资源/css/sam/images/ui-bg_highlight-soft_75_cccccc_1x100.png 膨胀:资源/css/sam/images/ui-icons_222222_256x240.png 膨胀:resources/css/sam/images/ui-icons_2e83ff_256x240.png 膨胀:resources/css/sam/images/ui-icons_454545_256x240.png 膨胀:resources/css/sam/images/ui-icons_888888_256x240.png 膨胀:resources/css/sam /images/ui-icons_cd0a0a_256x240.png 膨胀:resources/css/sam/skin.css 膨胀:resources/layout/doublevontent.xhtml 膨胀:resources/layout/header.xhtml 膨胀:resources/layout/masterLayout.xhtml 膨胀:resources/ prime-themes/vader/skin.css 膨胀:resources/security/loginPanel.xhtml 膨胀:root/admin/radmin.xhtml 膨胀:root/bookkeeper/rbookkeeper.xhtml 膨胀:root/manager/rmanager.xhtml 膨胀:WEB-INF /beans.xml 膨胀:WEB-INF/classes/ua/co/oasys/hydra/common/SkinBean.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/i18n/messages.properties 膨胀:WEB-INF/classes/ua/co/oasys/hydra/i18n/messages_en_US.properties 膨胀:WEB-INF/classes/ua/co/oasys/hydra/i18n/messages_ru_RU.properties 膨胀:WEB-INF/classes/ua/ co/oasys/hydra/i18n/messages_uk_UA.properties 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/CustomCharacterEncodingFilter.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/ Messenger.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/registration/TempReg.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/security/LogOutActionListener.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/security/LogoutServlet.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/security/RulesBean.class 膨胀:WEB-INF /classes/ua/co/oasys/hydra/mb/security/SecurityBacking.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/security/UserBean。类膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/security/UserManager.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/ua/co/oasys/hydra/ i18n/Messages.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/ua/co/oasys/hydra/i18n/Utf8ResourceBundle$1.class 膨胀:WEB-INF/classes/ua/co/oasys /hydra/mb/ua/co/oasys/hydra/i18n/Utf8ResourceBundle$Utf8PropertyResourceBundle.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/ua/co/oasys/hydra/i18n/Utf8ResourceBundle。类膨胀:WEB-INF/classes/ua/co/oasys/hydra/RegistrationServiceBea.class 膨胀:WEB-INF/faces-config.xmlWEB-INF/classes/ua/co/oasys/hydra/mb/ua/co/oasys/hydra/i18n/Utf8ResourceBundle$1.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/ua/ co/oasys/hydra/i18n/Utf8ResourceBundle$Utf8PropertyResourceBundle.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/ua/co/oasys/hydra/i18n/Utf8ResourceBundle.class 膨胀:WEB-INF/ classes/ua/co/oasys/hydra/RegistrationServiceBea.class 膨胀:WEB-INF/faces-config.xmlWEB-INF/classes/ua/co/oasys/hydra/mb/ua/co/oasys/hydra/i18n/Utf8ResourceBundle$1.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/ua/ co/oasys/hydra/i18n/Utf8ResourceBundle$Utf8PropertyResourceBundle.class 膨胀:WEB-INF/classes/ua/co/oasys/hydra/mb/ua/co/oasys/hydra/i18n/Utf8ResourceBundle.class 膨胀:WEB-INF/ classes/ua/co/oasys/hydra/RegistrationServiceBea.class 膨胀:WEB-INF/faces-config.xml

膨胀:WEB-INF/lib/primefaces-2.1.RC1-SNAPSHOT.jar 膨胀:WEB-INF/sun-web.xml 膨胀:WEB-INF/web.xml 创建:META-INF/maven/ 创建:META-INF /maven/ua.co.oasys/ 创建:META-INF/maven/ua.co.oasys/hydra/ 膨胀:META-INF/maven/ua.co.oasys/hydra/pom.xml 膨胀:META-INF/ maven/ua.co.oasys/hydra/pom.properties


  • Q1:使用war中打包的ejb bean是否可以接受(规范是这样的)?
  • Q2:我应该通过 ejb-jar.xml 描述一些配置吗?
  • Q3:问题的原因可能是什么?
0 投票
1 回答
1446 浏览

jakarta-ee - CDI 在部署到 glassfish v3.0.1 的耳朵中不起作用

我在使用焊接记录器注入时遇到了一些问题。

场景:我的耳朵里面有 ejb-jar。

这是我的 ejb bean:

当 print1Partner 调用我得到异常:

|2010-07-02T19:25:35.003+0300|警告|oracle-glassfish3.0.1|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=48;_ThreadName=Thread-1;|调用 EJB PartnersService 方法时发生系统异常 public void ua.co.oasys.fenix.persistence.PartnersService.print1Partner() javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException: 无法创建无状态EJB 在 com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:448) 在 com.sun.ejb.containers.BaseContainer.getContext(BaseContainer.java:2467) 在 com.sun.ejb.containers.BaseContainer。 preInvoke(BaseContainer.java:1860) 在 com.sun.ejb.containers.BaseContainer.callEJBTimeout(BaseContainer.java:3962) 在 com.sun.ejb.containers.EJBTimerService。com.sun.ejb.containers.EJBTimerService.access$100(EJBTimerService.java:98) 上的 deliverTimeout(EJBTimerService.java:1667) com.sun.ejb.containers.EJBTimerService$TaskExpiredWork.run(EJBTimerService.java:2485) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 在 java.util.concurrent.FutureTask.run(FutureTask. java:138) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 在 java.lang.Thread.run (Thread.java:619) 原因:javax.ejb.EJBException:javax.ejb.CreateException:无法在 com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory 创建无状态 EJB。在 com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:443) 处创建(StatelessSessionContainer.java:720) ... 12 更多原因:javax.ejb.CreateException: 无法在 com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:528) 在 com.sun.ejb.containers.StatelessSessionContainer.access 创建无状态 EJB $000(StatelessSessionContainer.java:90) at com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:718) ... 14 更多原因:java.util.concurrent.ConcurrentHashMap 的 java.lang.NullPointerException .get(ConcurrentHashMap.java:768) 在 org.jboss.weld.manager.BeanManagerImpl。getBean(BeanManagerImpl.java:1171) at org.jboss.weld.manager.BeanManagerImpl.getBean(BeanManagerImpl.java:132) at org.glassfish.weld.services.JCDIServiceImpl._createJCDIInjectionContext(JCDIServiceImpl.java:145) at org.glassfish .weld.services.JCDIServiceImpl.createJCDIInjectionContext(JCDIServiceImpl.java:122) 在 com.sun.ejb.containers.BaseContainer.createEjbInstanceAndContext(BaseContainer.java:1616) 在 com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java :469) ... 还有 16 个 |#]createJCDIInjectionContext(JCDIServiceImpl.java:122) at com.sun.ejb.containers.BaseContainer.createEjbInstanceAndContext(BaseContainer.java:1616) at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:469) ... 16更多 |#]createJCDIInjectionContext(JCDIServiceImpl.java:122) at com.sun.ejb.containers.BaseContainer.createEjbInstanceAndContext(BaseContainer.java:1616) at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:469) ... 16更多 |#]

使用:ejb 3.1,glassfish 3.0.1

一些maven依赖:

耳朵 pom.xml

META-INF/ 中的 bean.xml

在没有 ejb 的情况下使用 war in ear 的相同配置(在战争中,但如果我在战争和焊接中使用 ejb - 同样的例外)

Q1:怎么了?

Q2:weld & ejb 3.1的使用规则是什么?

0 投票
1 回答
2503 浏览

java - 服务器在 .ear 中找不到类

我的 .ear 文件有一些问题。该文件的结构是:

当我尝试部署我的应用程序时,我得到 ClassNotFoundException,其中类 wihch 在 ektorp.jar 中。该文件由 ejb 模块使用。

我也不知道为什么这些罐子要翻倍?在 ear 和 in war 模块中是相同的 .jar 文件。

Ear 由 maven2 构建。

0 投票
2 回答
3471 浏览

jakarta-ee - 带有 ejb 3.1 的 CDI,glassfish v3.0.1 上的焊接记录器

场景:1)创建maven ear项目,在里面创建war项目2)将beans.xml添加到war项目的WEB-INF/ 3)创建简单的@Steateless bean

项目 - http://drp.ly/1j5C3t

ejb 豆:

战争项目的maven pom-xml:

ear项目的maven pom.xml:

测试用例 1(问题):使用 beans.xml 部署项目给出异常:

[#|2010-07-04T19:36:50.003+0300|警告|oracle-glassfish3.0.1|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=33;_ThreadName=Thread-1 ;|在调用 EJB TestEjb 方法时发生系统异常 public void TestEjb.print1Partner() javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException: 无法在 com.sun.ejb 创建无状态 EJB。 container.StatelessSessionContainer._getContext(StatelessSessionContainer.java:448) 在 com.sun.ejb.containers.BaseContainer.getContext(BaseContainer.java:2467) 在 com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1860)在 com.sun.ejb.containers.EJBTimerService.deliverTimeout(EJBTimerService.java:1667) 在 com.sun.ejb.containers 的 com.sun.ejb.containers.BaseContainer.callEJBTimeout(BaseContainer.java:3962)。EJBTimerService.access$100(EJBTimerService.java:98) at com.sun.ejb.containers.EJBTimerService$TaskExpiredWork.run(EJBTimerService.java:2485) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441 ) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 在 java.util.concurrent.FutureTask.run(FutureTask.java:138) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask( ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) 原因:javax.ejb.EJBException: javax .ejb.CreateException:无法在 com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:720) 在 com.sun.ejb.containers.util.pool 创建无状态 EJB。NonBlockingPool.getObject(NonBlockingPool.java:200) at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:443) ... 12 更多原因:javax.ejb.CreateException:无法在 com 创建无状态 EJB .sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:528) 在 com.sun.ejb.containers.StatelessSessionContainer.access$000(StatelessSessionContainer.java:90) 在 com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory。 create(StatelessSessionContainer.java:718) ... 14 更多原因: org.jboss.weld.manager.BeanManagerImpl.getBean 的 java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768) 的 java.lang.NullPointerException (BeanManagerImpl.java:1171) 在 org.jboss.weld.manager.BeanManagerImpl。getBean(BeanManagerImpl.java:132) 在 org.glassfish.weld.services.JCDIServiceImpl._createJCDIInjectionContext(JCDIServiceImpl.java:145) 在 org.glassfish.weld.services.JCDIServiceImpl.createJCDIInjectionContext(JCDIServiceImpl.java:122) 在 com.sun .ejb.containers.BaseContainer.createEjbInstanceAndContext(BaseContainer.java:1616) 在 com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:469) ... 16 更多 |#] [#|2010-07-04T19 :36:50.004+0300|INFO|oracle-glassfish3.0.1|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=33;_ThreadName=Thread-1;|EJB5119:清除计时器 [' 13@@1278255602087@@server@@oasys''TimedObject = TestEjb''应用程序 = testo''BEING_DELIVERED''PERIODIC''容器 ID = 83771744647118848' 'Sun Jul 04 19:36:45 EEST 2010' '0' '*/15 # * # * # * # * # * # * # null # null # null # true # print1Partner # 0' ] [2] 交付失败后|#]

[#|2010-07-04T19:37:00.000+0300|INFO|oracle-glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=33;_ThreadName=Thread -1;|这是测试|#]

期待结果:

伊尔贾阿

这是测试

结果 :

例外

这是测试


案例 2:删除 beans.xml

期待结果:

伊尔贾阿

这是测试

结果

伊尔贾阿

这是测试

目标:我想在包含其他战争和 ejb 项目的耳朵档案内的 web 项目中使用 ejb 焊接(CDI),但我不希望分离我的 web 项目(战争 + ejb)

工具和环境:maven & ejb 3.1 &weld & glassfish 3.0.1

Q1:这可能是某种特定的玻璃鱼虫吗?Q2:什么可能是问题的原因?Q3:这种情况有什么设计吗?

谢谢你。

0 投票
1 回答
2002 浏览

jakarta-ee - Glassfish: How to change the security realm for a WAR-app

I'm building a JEE6-application that runs on Glassfish v3.0.1. It's a web-application with EJBs, deployed as a WAR (EJB 3.1).

Currently i'm trying to configure a login by using a JDBC-based security realm. Now i don't know how to configure my WAR-application to not use the default Glassfish Security Realm (file) and instead use my newly created JDBC-realm. I know how to do it in a EAR-application, there you can deploy a sun-application.xml together with the application with a content like this:

But as i have a web-application, i can't use it, at least not when deploying the app (i get an error because my app isn't configured for EAR-deployment) Can i declare the default security realm within the sun-web.xml? I also couldn't find an option within the Glassfish-admin-interface, or did i miss it?

0 投票
6 回答
16967 浏览

hibernate - EntityManager.find 找不到实体,但使用 Criteria API 可以

我在 Java EE 6 中遇到了一个相当奇怪的情况,其中使用 JPA EntityManager 的find方法以及实体的主 ID 返回 null,但使用 Criteria API 选择具有该 ID 的所有实体工作正常。

这是我使用的代码find

...这是我与 Criteria API 一起使用的代码:

知道为什么find返回 null 但 Criteria 找到了用户吗?我在程序的完全相同的位置尝试了这两种替代方法。

以下是用户实体的相关部分:

0 投票
3 回答
18196 浏览

java - JavaEE6 DAO:应该是@Stateless 还是@ApplicationScoped?

我目前正在创建一个 EJB3 数据访问类来处理我的 Java EE 6 应用程序中的所有数据库操作。现在,由于 Java EE 6 提供了新的ApplicationScoped注解,我想知道我的 EJB 应该有什么状态,或者它是否应该是无状态的。

让 DAO 成为@StatelessSession Bean 还是@ApplicationScopedBean 会更好吗?怎么样@Singleton?这些与 DAO 相关的选项之间有什么区别?

编辑: 我正在使用带有完整 Java EE 6 平台的 Glassfish 3.0.1

0 投票
2 回答
2280 浏览

jdbc - 嵌入式 Glassfish v3:以编程方式部署 sun-resources.xml 失败

我希望能够通过使用 Glassfish 嵌入式 API 将我的 jpa-ejb-web 项目打包为独立的应用程序。

要使用 JPA 层,我需要部署 sun-resource.xml 配置,这应该可以通过asadmin 命令 add-resources path\to\sun-resources.xml来实现。我有这个代码来做到这一点:

但 Glassfish 拒绝了它:

严重:添加资源出现问题

lib实际上,指定路径上没有目录...

我的代码有问题吗?(我使用glassfish-embedded-all-3.0.1.jar

谢谢