Hey guys. As you probably know (at least David knows), I'm migrating an app from JBoss to OpenEJB. In JBoss I have xmlparserv2.jar in the lib directory. When I paste that jar inside OpenEJB's lib directory, my app isn't deployed.
I tried several things to get a log message or a stacktrace, and here is what I got. I start openejb using "openejb start" with nothing to deploy. Just a simple and clean OpenEJB container start. After that, I try to deploy my app using "openejb deploy my-app.jar". In the openejb start console, a stacktrace is printed: > openejb start > Apache OpenEJB 3.1.4 build: 20101112-03:32 > http://openejb.apache.org/ > log4j:WARN No appenders could be found for logger > (org.apache.openejb.resource.activemq.ActiveMQResourceAdapter). > log4j:WARN Please initialize the log4j system properly. > [init] OpenEJB Remote Server > ** Starting Services ** > NAME IP PORT > httpejbd 127.0.0.1 4204 > admin thread 127.0.0.1 4200 > ejbd 127.0.0.1 4201 > ejbd 127.0.0.1 4203 > hsql 127.0.0.1 9001 > telnet 127.0.0.1 4202 > ------- > Ready! > FOO moduleName = C:\OpenEJB\openejb-3.1.4\apps\my-app.jar > org.apache.openejb.config.ValidationFailedException: Module failed > validation. AppModule(path=C:\OpenEJB\openejb-3.1.4\apps\my-app.jar) > at > org.apache.openejb.config.ReportValidationResults.deploy(ReportValidationResults.java:82) > at > org.apache.openejb.config.AppInfoBuilder.build(AppInfoBuilder.java:241) > at > org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:629) > at > org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:146) > at > org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:81) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:162) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:144) > at > org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:164) > at > org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:92) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:162) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:144) > at > org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122) > at > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221) > at > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174) > at > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:136) > at > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238) > at > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129) > at > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:196) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:149) > at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:71) > at > org.apache.openejb.server.ejbd.KeepAliveServer$Session.service(KeepAliveServer.java:213) > at > org.apache.openejb.server.ejbd.KeepAliveServer.service(KeepAliveServer.java:233) > at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:66) > at > org.apache.openejb.server.ServicePool$2.run(ServicePool.java:91) > at > org.apache.openejb.server.ServicePool$3.run(ServicePool.java:120) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown > Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > Source) > at java.lang.Thread.run(Unknown Source) > Next is what was printed out before I write "openejb deploy my-app.jar": > openejb deploy my-app.jar > Application did not pass validation: my-app.jar > ------------------------------------------ > JAR C:\OpenEJB\openejb-3.1.4\apps\my-app.jar > > FAIL ... MySession: Missing required persistence.xml for > @PersistenceContext ref "em" to unit "" > Unable to delete failed deployment file > "C:\OpenEJB\openejb-3.1.4\apps\my-app.jar" > I removed a lot of the output for privacy, hope you guys undestand. I concluded that OpeEJB uses some default jar to write some XML validation or something like that, and when I try to deploy the app using a new jar (xmlparserv2.jar), it uses the class from the new jar and throws that exception. Am I right? Is there any way I can fix this? Thanks in advance, Regards, Andre. -- View this message in context: http://openejb.979440.n4.nabble.com/OpenEJB-deploy-doesn-t-occur-when-xmlparserv2-jar-is-in-the-lib-directory-tp3606246p3606246.html Sent from the OpenEJB User mailing list archive at Nabble.com.
