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>
<context-param>
<param-name>primefaces.skin</param-name>
<param-value>sam</param-value>
</context-param>
<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>
<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: ?