WEB-INF/classes-javax.EJB.CreateException中war包中的EJB 3.1:无法创建无状态EJB
我想,我误解了在war包中打包ejbbean的规则 目标:我想在war包中使用ejb bean 场景:我的战争中有一些豆子: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
@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编写