EJB 3.1 in a war package in WEB-INF / classes - javax.ejb.CreateException: Failed to create a stalled EJB

I think I misunderstood the rules for packing ejb beans in a war package.

Purpose: I want to use ejb beans in a military package.

Scenario: There is a 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 deploys to the Glassfish server (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] | #]

But when the scheduler starts, I get:

[# | 2010-07-02T16: 54: 20,004 + 0300 | | -glassfish3.0.1 | javax.enterprise.system.container.ejb.com.sun.ejb.containers | _ThreadID = 38; _ThreadName = Thread-1; | EJB RegistrationServiceBean public ua.co.oasys.hydra.beans.RegistrationServiceBean.baseRegistration() 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.deliverTimeout(EJBTimerService.java:1667)   com.sun.ejb.containers.EJBTimerService.access $100 (EJBTimerService.java:98)   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: EJB com.sun.ejb.containers.StatelessSessionContainer $SessionContextFactory.create(StatelessSessionContainer.java:720)   com.sun.ejb.containers.util.pool.NonBlockingPool.getObject(NonBlockingPool.java:200)   com.sun.ejb.containers.StatelessSessionContainer._getContext (StatelessSessionContainer.java:443)  ... 12 : javax.ejb.CreateException: EJB com.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 : java.lang.NullPointerException java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)   org.jboss.weld.manager.BeanManagerImpl.getBean(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 | #]

, , , ejb ejb-jar, , .

, , :

com.sun.enterprise.admin.cli.CommandException: : : org.glassfish.deployment.common.DeploymentException: by java.lang.NoClassDefFoundError: //OASYS// beans/RegistrationServiceBean

, .


:  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:

[# | 2010-07-04T16: 16: 26,401 + 0300 | | -glassfish3.0.1 | javax.enterprise.system.core.com.sun.enterprise.v3.server | _ThreadID = 25; _ThreadName = Thread-1; | Exception org.glassfish.deployment.common.DeploymentException: by java.lang.NoClassDefFoundError: //OASYS//RegistrationServiceBea    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)    com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)    org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)    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)    com.sun.enterprise.v3.admin.CommandRunnerImpl.access $900 (CommandRunnerImpl.java:83)    com.sun.enterprise.v3.admin.CommandRunnerImpl $ExecutionContext.execute(CommandRunnerImpl.java:1235)    com.sun.enterprise.v3.admin.CommandRunnerImpl $ExecutionContext.execute(CommandRunnerImpl.java:1224)    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.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)    com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)    com.sun.grizzly.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: by java.lang.NoClassDefFoundError: //OASYS//RegistrationServiceBea    javassist.util.proxy.ProxyFactory.createClass3 (ProxyFactory.java:344)    javassist.util.proxy.ProxyFactory.createClass2 (ProxyFactory.java:314)    javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:273)    org.jboss.weld.util.Proxies.createProxyClass(Proxies.java:187)    org.jboss.weld.util.Proxies.createProxyClass(Proxies.java:168)    org.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)    org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:377)    org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:165)   ... 30 : javassist.CannotCompileException: by java.lang.NoClassDefFoundError: //OASYS//RegistrationServiceBea    javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:169)    javassist.util.proxy.ProxyFactory.createClass3 (ProxyFactory.java:339)   ... 40 : java.lang.NoClassDefFoundError: //OASYS//RegistrationServiceBea    java.lang.ClassLoader.defineClass1 (Native ) java.lang.Classloader.defineClassCond(ClassLoader.java:632)    java.lang.ClassLoader.defineClass(ClassLoader.java:616)    sun.reflect.GeneratedMethodAccessor196.invoke( ) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)    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 : java.lang.ClassNotFoundException: ua.co.oasys.hydra.RegistrationServiceBea    com.sun.enterprise.loader.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:

oasys.ear

jar xfv ~// /Intellij_IDEA_9/Oasys/Oasys-//oasys.ear : META-INF/: META-INF/MANIFEST.MF : lib/ : fenix.jar : hydra.war : javax.inject-1.jar : JBoss---1,1-CR1.jar : jsr250-api-1.0.jar : lib/cdi-api-1.0-CR4.jar : /EclipseLink -2.1.0-SNAPSHOT.jar : /javax.persistence-2.0.0.jar : lib/slf4j-api-1.6.0.jar : lib/slf4j-jdk14-1.6.0.jar : lib/utopia.jar : / -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-/ : META-INF/Maven/ua.co.oasys/OASYS /pom.xml : META-INF/Maven/ua.co.oasys/OASYS /pom.properties

hydra.war

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


  • Q1: ejb beans, ( , )?
  • Q2: ejb-jar.xml?
  • Q3: ?
+3
3

: CDI ejb 3.1, v3.0.1 , .

- CDI EJB -, t glassfish 3.0.1.

- ejb war - , .

+1

, .

, , stacktrace NoClassDefFoundError, -.

Q1: ejb beans, ( , )?

. EJB WEB-INF/classes EJB-JAR WEB-INF/lib. -, .

Q2: ejb-jar.xml?

, .

Q3: ?

, ... EJB webapp [ejb, jpa, web, webservices, weld] ( , Entity my ), . GlassFish 3.0.1. , .

, jar xfv yourapp.war ( web.xml)?

+1

EJB, WAR, web/lite EE6. , . , , ejbs ejbjar + war + ear.

-, : http://www.theserverside.com/news/1321142/Part-Three-New-Features-in-EJB-31

: , jsr 318, EJB 3.1. , ejb, .

0
source

Source: https://habr.com/ru/post/1752834/


All Articles