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

WEB-INF/classes-javax.EJB.CreateException中war包中的EJB 3.1:无法创建无状态EJB,java,jakarta-ee,glassfish,ejb-3.1,java-ee-6,Java,Jakarta Ee,Glassfish,Ejb 3.1,Java Ee 6,我想,我误解了在war包中打包ejbbean的规则 目标:我想在war包中使用ejb bean 场景:我的战争中有一些豆子: @Stateless public class RegistrationServiceBean { @PersistenceContext(unitName = "Utopia") EntityManager em; public RegistrationServiceBean() {} @Schedule(hour = "*", m

我想,我误解了在war包中打包ejbbean的规则

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

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

@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();
    }
}
它已成功部署到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 | | u ThreadID=36;| u ThreadName=Thread-1;|可移植 EJB的JNDI名称 注册服务bean: [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 | | u ThreadID=38;| u ThreadName=Thread-1;| A 发生故障时发生系统异常 EJB上的调用 RegistrationServiceBean方法公共 无效的 ua.co.oasys.hydra.beans.RegistrationServiceBean.baseRegistration() javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException:无法 在以下位置创建无状态EJB: com.sun.ejb.containers.StatelessSessionContainer.\u 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) 在 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) 在 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.\u 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 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.\u createjcdiInjectContext(JCDIServiceImpl.java:145) 在 org.glassfish.weld.services.JCDIServiceImpl.createjcdiInjectContext(JCDIServiceImpl.java:122) 在 com.sun.ejb.containers.BaseContainer.CreatejbinstanceAndContext(BaseContainer.java:1616) 在 com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:469) …还有16个|#]

所有应用程序都打包在ear中,内部带有war,如果我在EJBJAR中部署ejb,效果会很好,但这不是我想要的

删除焊接依赖项后,在部署过程中出现异常:

com.sun.enterprise.admin.cli.CommandException: 远程故障:发生异常时 正在加载应用程序: org.glassfish.deployment.common.DeploymentException: by java.lang.NoClassDefFoundError: ua/co/oasys/hydra/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>

合作伙伴
合作伙伴网站
javax.faces.PROJECT_阶段
发展
javax.faces.DEFAULT_后缀
.xhtml
javax.faces.STATE_保存方法
服务器
素描皮肤
山姆
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
/面孔/*
javax.faces.FACELETS\u跳过\u注释
真的
30
faces/index.xhtml
经理
经理页面
/面孔/合作伙伴/经理/*
/合伙人/经理/*
/搭档/*
/面孔/伙伴/*
经理
管理
管理页面
/面孔/合作伙伴/管理员/*
/合作伙伴/管理员/*
/搭档/*
/面孔/伙伴/*
管理
经理
拉明
簿记员
形式
绿洲王国
/faces/login.xhtml
/faces/loginError.xhtml
NoClassDefFoundError异常:

[#| 2010-07-04T16:16:26.401+0300 |严重| oracle-glassfish3.0.1 | javax.enterprise.system.core.com.sun.enterprise.v3.server | | u ThreadID=25;| u ThreadName=Thread-1;|异常 加载应用程序时 org.glassfish.deployment.common.DeploymentException: 由java.lang.No编写