Hey everyone, We have been trying to deploy drools-camel-server-5.3.x.Final.war from droolsjbpm-integration-distribution-5.3.0.Final on WebLogic 10.3.3.
We hit a series of issues, of which I've opened up some issue tickets to address: 1) strict web application container complains about web.xml (JBRULES-3403 - https://issues.jboss.org/browse/JBRULES-3403) - web.xml needs to be re-arranged to get it to work in weblogic 10.x. 2) There seems to be duplicate JPA persistence units (https://issues.jboss.org/browse/JBRULES-3404) I also experienced two other issues that I do not feel comfortable putting on the issue tracker because they may be weblogic-specific: 3) When I tried to run a SOAP UI test on the drools server in Weblogic 10.3.3 I get this: WARNING: Interceptor for {http://soap.jax.drools.org/}CommandExecutor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: This class does not support SAAJ 1.1 at org.apache.camel.component.cxf.CxfConsumer$1.checkFailure(CxfConsumer .java:123) at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java: 102) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInv okerInterceptor.java:58) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:44 1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecu tor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(Se rviceInvokerInterceptor.java:106) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept orChain.java:263) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti ationObserver.java:118) at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(Abstract HTTPDestination.java:208) at org.apache.cxf.transport.servlet.ServletController.invokeDestination( ServletController.java:223) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletCont roller.java:205) at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpr ingServlet.java:113) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Ab stractHTTPServlet.java:184) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractH TTPServlet.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(Abstract HTTPServlet.java:163) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run (StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecuri tyHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav a:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav a:183) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.doIt(WebAppServletContext.java:3686) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:3650) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppS ervletContext.java:2268) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletC ontext.java:2174) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.j ava:1446) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) Caused by: java.lang.UnsupportedOperationException: This class does not support SAAJ 1.1 at weblogic.webservice.core.soap.SOAPMessageImpl.getSOAPBody(SOAPMessage Impl.java:631) at org.drools.jax.soap.PreCxfTransportSoapProcessor.process(PreCxfTransp ortSoapProcessor.java:42) at org.drools.camel.component.DroolsPolicy$DroolsProcess.process(DroolsP olicy.java:341) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$Processor ToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(Delegat eAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsy ncProcessor.java:89) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(Delegat eAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsy ncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(Trace Interceptor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:70) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler (RedeliveryErrorHandler.java:290) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryE rrorHandler.java:202) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java :256) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProc essor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(Delegat eAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsy ncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(Instrume ntationProcessor.java:68) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:91) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsy ncProcessor.java:85) at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java: 97) ... 29 more Seems to be two possible ways to solve this (have not tested these yet!) Option One: Use axis.jar instead of saaj-impl.jar 1. add axis.jar file to bea class path 2. in startWebLogic.sh/cmd set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS% -Djavax.xml.soap.MessageFactory=org.apache.axis.soap.MessageFactoryImpl Option Two: Make a code fix to allow the saaj to function Follow the below steps to resolve "UnsupportedOperationException" a. Set classpath to latest saaj-impl.jar in startweblogic.cmd b. Set the below 2 system properties in code. System.setProperty("javax.xml.soap.MessageFactory","com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl"); System.setProperty("javax.xml.soap.SOAPConnectionFactory","weblogic.wsee.saaj.SOAPConnectionFactoryImpl"); c. Note that the above 2 classes are available in the saaj-impl.jar which i have used and set classpath in step1. If you are using different version of saaj-impl.jar, set the exact "MessageFactory" and "SOAPConnectionFactory" classes which are avilable in your saaj-impl.jar. (Just extract your saaj-impl.jar and findout the exact classes). Obviously we cannot expect Drools team to make any code changes with respect to WebLogic, so I would imagine trying Step 1 is the best way to go. 4) The drools-camel-server.war’s test.jsp apparently runs an example that uses a Camel route leading to a REST web service. This does not work for me either off the bat: WARNING: Interceptor for {http://soap.jax.drools.org/}CommandExecutor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Unable to create message factory for SOAP: Pro vider org.apache.axis.soap.MessageFactoryImpl not found at org.apache.camel.component.cxf.CxfConsumer$1.checkFailure(CxfConsumer .java:123) at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java: 102) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInv okerInterceptor.java:58) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:44 1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecu tor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(Se rviceInvokerInterceptor.java:106) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept orChain.java:263) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti ationObserver.java:118) at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(Abstract HTTPDestination.java:208) at org.apache.cxf.transport.servlet.ServletController.invokeDestination( ServletController.java:223) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletCont roller.java:205) at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpr ingServlet.java:113) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Ab stractHTTPServlet.java:184) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractH TTPServlet.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(Abstract HTTPServlet.java:163) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run (StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecuri tyHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav a:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav a:183) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.doIt(WebAppServletContext.java:3686) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:3650) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppS ervletContext.java:2268) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletC ontext.java:2174) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.j ava:1446) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) Caused by: javax.xml.soap.SOAPException: Unable to create message factory for SO AP: Provider org.apache.axis.soap.MessageFactoryImpl not found at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:116) at org.drools.jax.soap.PreCxfTransportSoapProcessor.process(PreCxfTransp ortSoapProcessor.java:40) at org.drools.camel.component.DroolsPolicy$DroolsProcess.process(DroolsP olicy.java:341) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$Processor ToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(Delegat eAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsy ncProcessor.java:89) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(Delegat eAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsy ncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(Trace Interceptor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:70) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler (RedeliveryErrorHandler.java:290) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryE rrorHandler.java:202) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java :256) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProc essor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(Delegat eAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsy ncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(Instrume ntationProcessor.java:68) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:91) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsy ncProcessor.java:85) at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java: 97) ... 29 more <Feb 26, 2012 3:58:31 PM CST> <Error> <HTTP> <BEA-101020> <[ServletContext@12863 942[app:_appsdir_drools-5.3.0A_dir module:drools-5.3.0A path:/drools-5.3.0A spec -version:null]] Servlet failed with Exception org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[Message: <batch-execution lookup="ksession1"> <insert out-identifier="message"> <org.test.Message> <text>Hello World</text> </org.test.Message> </insert> </batch-execution> ] at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(Object Helper.java:1142) at org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper .java:452) at org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(Defau ltProducerTemplate.java:441) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProduce rTemplate.java:119) at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProduce rTemplate.java:135) Truncated. see log file for complete stacktrace Caused By: org.apache.camel.CamelExchangeException: No consumers available on en dpoint: Endpoint[direct://kservice/rest]. Exchange[Message: <batch-execution loo kup="ksession1"> <insert out-identifier="message"> <org.test.Message> <text>Hello World</text> </org.test.Message> </insert> </batch-execution> ] at org.apache.camel.component.direct.DirectProducer.process(DirectProduc er.java:56) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProc essor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelp er.java:91) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsy ncProcessor.java:85) at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProdu cer.java:63) Truncated. see log file for complete stacktrace Apparently the camel endpoint did not deploy at all, or something. I'm wondering what of these issues are totally specific to WebLogic, and which are just plain 'ole issues. Can anyone share their experiences or expectations of using the drools camel server WAR within the various app servers? How much are we expected to make custom changes? -- View this message in context: http://drools.46999.n3.nabble.com/Some-problems-with-Deploying-drools-camel-sever-5-3-x-in-Weblogic-10-x-tp3786473p3786473.html Sent from the Drools: User forum mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users