简体   繁体   English

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

[英]EJB 3.1 in war package in WEB-INF/classes - javax.ejb.CreateException: Could not create stateless EJB

I think, I misunderstood rules of packaging ejb beans in war package. 我想,我误解了在战争包中包装ejb bean的规则。

Goal: I want to use ejb beans in war package. 目标:我想在war包中使用ejb bean。

Scenario: I have some bean in my war: 场景:我的战争中有一些豆子:

@Stateless
public class RegistrationServiceBean {

    @PersistenceContext(unitName = "Utopia")
    EntityManager em;

    public RegistrationServiceBean() {}

    @Schedule(hour = "*", minute = "*", second = "*/15")
    public void baseRegistration() {
        System.out.println("call from ejb!!");
    }

    public void saveTempPartner(OasysPartnerTempEntity part) {
        em.persist(part);
        em.flush();
    }
}

It successfully deploying to glassfish server (ogs 3.0.1) : 它成功部署到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;|Portable JNDI names for EJB RegistrationServiceBean : [java:global/oasys/hydra/RegistrationServiceBean!ua.co.oasys.hydra.beans.RegistrationServiceBean, java:global/oasys/hydra/RegistrationServiceBean]|#] [#| 2010-07-02T16:53:59.728 + 0300 | INFO |甲骨文glassfish3.0.1 | javax.enterprise.system.container.ejb.com.sun.ejb.containers | _ThreadID = 36; _ThreadName =线程1 ; | EJB RegistrationServiceBean的可移植JNDI名称:[java:global / oasys / hydra / RegistrationServiceBean!ua.co.oasys.hydra.beans.RegistrationServiceBean,java:global / oasys / hydra / RegistrationServiceBean] |#]

But when the scheduler is starting I get : 但是当调度程序启动时,我得到:

[#|2010-07-02T16:54:20.004+0300|WARNING|oracle-glassfish3.0.1|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=38;_ThreadName=Thread-1;|A system exception occurred during an invocation on EJB RegistrationServiceBean method public void ua.co.oasys.hydra.beans.RegistrationServiceBean.baseRegistration() javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:448) at com.sun.ejb.containers.BaseContainer.getContext(BaseContainer.java:2467) at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1860) at com.sun.ejb.containers.BaseContainer.callEJBTimeout(BaseContainer.java:3962) at com.sun.ejb.containers.EJBTimerService.deliverTimeout(EJBTimerService.java:1667) at com.sun.ejb.containers.EJBTimerService.access$100(EJBTimerService.java:98) at com.sun.ejb.containers.EJBTimerService$TaskExpiredWork.run(EJBTimerService [#| 2010-07-02T16:54:20.004 + 0300 |警告|甲骨文glassfish3.0.1 | javax.enterprise.system.container.ejb.com.sun.ejb.containers | _ThreadID = 38; _ThreadName =线程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的com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:448)的com.sun.ejb.containers.BaseContainer.getContext(BaseContainer.java:2467)创建无状态EJB。位于com.sun.ejb.containers.BaseContainer.callEJBTimeout(BaseContainer.java:3962)的com上的com.sun.ejb.containers.EJBTimerService.deliverTimeout(EJBTimerService.java:1667)中的BaseContainer.preInvoke(BaseContainer.java:1860) .sun.ejb.containers.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) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at 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) Caused by: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB at com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:720) at com.sun.ejb.containers.util.pool.NonBlockingPool.getObject(NonBlockingPool.java:200) at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:443) ... 12 more Caused by: javax.ejb.CreateException: Could not create stateless EJB at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContai .java:2485)at java.util.concurrent.Executors $ runnableAdapter.call(Executors.java:441)at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)at 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)at java .lang.Thread.run(Thread.java:619)引起:javax.ejb.EJBException:javax.ejb.CreateException:无法在com.sun.ejb.containers.StatelessSessionContainer $ SessionContextFactory.create(StatelessSessionContainer)创建无状态EJB。 java:720)at com.sun.ejb.containers.util.pool.NonBlockingPool.getObject(NonBlockingPool.java:200)at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:443)... 12更多原因:javax.ejb.CreateException:无法在com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContai)创建无状态EJB ner.java:528) at com.sun.ejb.containers.StatelessSessionContainer.access$000(StatelessSessionContainer.java:90) at com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:718) ... 14 more Caused by: java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768) at 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) at com.sun.ejb.containers.BaseContainer.createEjbInstanceAndContext(BaseContainer.java:1616) at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:469) ... 16 more |#] ner.java:528)com.sun.ejb.containers.StatelessSessionContainer.access $ 000(StatelessSessionContainer.java:90)at com.sun.ejb.containers.StatelessSessionContainer $ SessionContextFactory.create(StatelessSessionContainer.java:718)... 14更多引起:java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)的java.lang.NullPointerException位于org.jboss的org.jboss.weld.manager.BeanManagerImpl.getBean(BeanManagerImpl.java:1171)位于org.glassfish.weld.services.JCDIServiceImpl._createJCDIInjectionContext(JCDIServiceImpl.java:145)的.weld.manager.BeanManagerImpl.getBean(BeanManagerImpl.java:132)org.glassfish.weld.services.JCDIServiceImpl.createJCDIInjectionContext(JCDIServiceImpl.java) :122)com.sun.ejb.containers.BaseContainer.createEjbInstanceAndContext(BaseContainer.java:1616)at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:469)... 16更多|#]

All application packaged in in ear with war inside, it works good if I am deploying ejb in ejb-jar, but is not what I want. 所有的应用程序都包含在内部的war中,如果我在ejb-jar中部署ejb,它的效果很好,但不是我想要的。

After I removed weld dependency, I got exception during deployment: 删除焊接依赖项后,我在部署期间遇到异常:

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

It is similar to glassfish bug , but I am not sure . 它类似于玻璃鱼 ,但我不确定。


updates: web.xml: 更新:web.xml:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <display-name>CO UA Partners</display-name>
    <description>CO UA Partners Site</description>

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>


    <!--Prime Faces-->
    <context-param>
        <param-name>primefaces.skin</param-name>
        <param-value>sam</param-value>
    </context-param>



    <!--Prime Faces end-->

    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>


    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>

    <context-param>
        <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
        <param-value>true</param-value>
    </context-param>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>

    <security-role>
        <role-name>manager</role-name>
    </security-role>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Manager Pages</web-resource-name>
            <url-pattern>/faces/partner/manager/*</url-pattern>
            <url-pattern>/partner/manager/*</url-pattern>
            <url-pattern>/partner/*</url-pattern>
            <url-pattern>/faces/partner/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>manager</role-name>
        </auth-constraint>
    </security-constraint>

    <security-role>
        <role-name>admin</role-name>
    </security-role>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Admin Pages</web-resource-name>
            <url-pattern>/faces/partner/admin/*</url-pattern>
            <url-pattern>/partner/admin/*</url-pattern>
            <url-pattern>/partner/*</url-pattern>
            <url-pattern>/faces/partner/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>
        </auth-constraint>
    </security-constraint>

    <!--roots-->


    <security-role>
        <role-name>rmanager</role-name>
    </security-role>
    <security-role>
        <role-name>radmin</role-name>
    </security-role>
    <security-role>
        <role-name>bookkeper</role-name>
    </security-role>


    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>oasysRealm</realm-name>
        <form-login-config>
            <form-login-page>/faces/login.xhtml</form-login-page>
            <form-error-page>/faces/loginError.xhtml</form-error-page>
        </form-login-config>
    </login-config>



</web-app>

NoClassDefFoundError exception : 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;|Exception while loading the app org.glassfish.deployment.common.DeploymentException: by java.lang.NoClassDefFoundError: ua/co/oasys/hydra/RegistrationServiceBea at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:167) at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:125) at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:224) at 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) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320) at com.sun.enterprise.v3.admin.CommandRu [#| 2010-07-04T16:16:26.401 + 0300 |严重|甲骨文glassfish3.0.1 | javax.enterprise.system.core.com.sun.enterprise.v3.server | _ThreadID = 25; _ThreadName =线程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)at com.sun.enterprise.v3.server.ApplicationLifecycle .deploy(ApplicationLifecycle.java:338)位于org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)的com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183) Com.sun.enterprise.v3.admin.CommandRunnerImpl $ 1.execute(CommandRunnerImpl.java:305)com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)at com.sun.enterprise.v3 .admin.CommandRu nnerImpl.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) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224) at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365) at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204) at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166) at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) at com.sun.grizzly.http.DefaultProtocolFilte nnerImpl.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)at com.sun.enterprise.v3.admin.CommandRunnerImpl $ ExecutionContext.execute(CommandRunnerImpl.java:1224)at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)位于com.sun.enterprise.v3的com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)。 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)at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)at com.sun.grizzly.http .DefaultProtocolFilte r.execute(DefaultProtocolFilter.java:170) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.RuntimeException: by java.lang.NoClassDefFoundError: ua/co/oasys/hydra/RegistrationServiceBea at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:344) at javassis 在com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)的com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)的com.sun.grizzly上的r.execute(DefaultProtocolFilter.java:170) .defaultProtocolChain.execute(DefaultProtocolChain.java:88)at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)at com。 sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)at com.sun.grizzly.ContextTask.run(ContextTask.java:69)at com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java: 330)at com.sun.grizzly.util.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:309)at java.lang.Thread.run(Thread.java:619)引起:java.lang.RuntimeException:by java。 lang.NoClassDefFoundError:javaas的javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:344)中的ua / co / oasys / hydra / RegistrationServiceBea t.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:314) at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:273) at org.jboss.weld.util.Proxies.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) at org.jboss.weld.bootstrap.AbstractBeanDeployer.deploy(AbstractBeanDeployer.java:110) at 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 more Caused by: javassist.CannotCompileException: by java.lang.NoClassDefFoundError: ua/co/oasys/hydra/RegistrationServiceBea at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:169) at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:339) ... 40 mo or.jboss.weld.util.Proxies.createProxyClass(Proxies.java: 187)org.jboss.weld.util.Proxies.createProxyClass(Proxies.java:168)atg.jboss.weld.bean.SessionBean.initProxyClass(SessionBean.java:221)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。 orb.glassfish.weld.WeldDeployer.event上的jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:377)(WeldDeployer.java:165)... 30更多引起:javassist.CannotCompileException:by java.lang。 NoClassDefFoundError:uss / co / oasys / hydra / RegistrationServiceBea at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:169)at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:339)... 40 mo re Caused by: java.lang.NoClassDefFoundError: ua/co/oasys/hydra/RegistrationServiceBea at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:181) at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:163) ... 41 more Caused by: java.lang.ClassNotFoundException: ua.co.oasys.hydra.RegistrationServiceBea at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:713) at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:626) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 49 mo 引起:java.lang.NoClassDefFoundError:ua / co / oasys / hydra / RegistrationServiceBea,java.lang.ClassLoader.defineClass1(Native Method),位于java.lang的java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) .ClassLoader.defineClass(ClassLoader.java:616)at sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method .java:597)javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:181)at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:163)... 41更多引起:java.lang .ClassNotFoundException:ua.co.oasys.hydra.RegistrationServiceBea at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:713)at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:626) at java.lang.ClassLoader.loadClass(ClassLoader.java:307)at java.lang.ClassLoader.loadClass(ClassLoader.java:248)... 49 mo re |#] re |#]


Update 2: 更新2:

If remove/rename beans.xml file ejbs deployed successfully. 如果删除/重命名beans.xml文件ejbs已成功部署。


Update 3: 更新3:

oasys.ear oasys.ear

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

hydra.war hydra.war

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

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


  • Q1: is it passable to use ejb beans packaged in war (specification sad that is true)? Q1:使用战争中包装的ejb bean是否合格(规范令人遗憾)?
  • Q2: should I describe some configuration by ejb-jar.xml ? Q2:我应该通过ejb-jar.xml描述一些配置吗?
  • Q3: what could be a cause of a problem? 问题3:可能导致问题的原因是什么?

It is similar to glassfish bug, but I am not sure . 它类似于玻璃鱼,但我不确定。

Hard to say, especially since you didn't provide the stacktrace for the NoClassDefFoundError , but the scenario seems different anyway. 很难说,特别是因为你没有为NoClassDefFoundError提供堆栈NoClassDefFoundError ,但无论如何情况似乎都不同。

Q1: is it passable to use ejb beans packaged in war (specification sad that is true)? Q1:使用战争中包装的ejb bean是否合格(规范令人遗憾)?

Definitely. 当然。 You can either put EJB classes in WEB-INF/classes or package them as EJB-JAR and put them in WEB-INF/lib . 您可以将EJB类放在WEB-INF/classes也可以将它们打包为EJB-JAR并将它们放在WEB-INF/lib I have several demo applications doing this. 我有几个演示应用程序这样做。

Q2: should I describe some configuration by ejb-jar.xml ? Q2:我应该通过ejb-jar.xml描述一些配置吗?

No, nothing forces you to do so. 不,没有什么能迫使你这样做。

Q3: what could be a cause of a problem? 问题3:可能导致问题的原因是什么?

The problem is that I couldn't reproduce the problem... I've deployed your EJB in a webapp with [ejb, jpa, web, webservices, weld] engines enabled (I just modified it to insert an Entity of mine in the scheduled method) and it just works. 问题是我无法重现这个问题......我已经在启用了[ejb, jpa, web, webservices, weld]引擎的webapp中部署了你的EJB(我只是修改它以插入我的实体)预定的方法),它只是工作。 Tested with an up-to-date version of GlassFish 3.0.1. 使用最新版本的GlassFish 3.0.1进行测试。 So I suspect a mistake or configuration problem on your side. 所以我怀疑你身边有错误或配置问题。

Just in case, can you provide the output of jar xfv yourapp.war (and also show your web.xml )? 为了以防万一,你能提供jar xfv yourapp.war的输出(并显示你的web.xml )吗?

See: CDI with ejb 3.1 , weld-logger on glassfish v3.0.1 There I Describe step to reproduce this issues. 请参阅: 带有ejb 3.1的CDI,glassfish v3.0.1上的焊接记录器我在此描述重现此问题的步骤。

As I understand - there is no possibility to use CDI & EJB in one web module packaged in ear archive together and deployed t glassfish 3.0.1. 据我了解 - 不可能在一个包含在ear存档中的Web模块中使用CDI和EJB并部署t glassfish 3.0.1。

Current design is to separate ejb and war module - at least it works for me. 目前的设计是将ejb和war模块分开 - 至少它对我有用。

EJBs packaged in a WAR are using the web / lite profile of EE6. 打包在WAR中的EJB使用EE6的web / lite配置文件。 As far as I know, timers and some other features are not supported in this profile. 据我所知,此配置文件不支持计时器和其他一些功能。 So if you want to use timers you would have to package your ejbs in the traditional ejbjar + war + ear way. 因此,如果你想使用计时器,你必须用传统的ejbjar + war + ear方式打包你的ejbs。

I could not find a reference for the web profile, this is the closest to a comparison: http://www.theserverside.com/news/1321142/Part-Three-New-Features-in-EJB-31 我找不到网络资料的参考资料,这是最接近的比较: http//www.theserverside.com/news/1321142/Part-Three-New-Features-in-EJB-31

Edit: I stand corrected, war packaging is actually described in jsr 318, EJB 3.1. 编辑:我认为,战争包装实际上是在jsr 318,EJB 3.1中描述的。 Since I could not find any restrictions on available features in that section of the spec, timers should also work in an ejb packaged in a war. 由于我在规范的该部分中找不到对可用功能的任何限制,因此计时器也应该在战争中打包的ejb中工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM