[rules-users] Some problems with Deploying drools-camel-sever 5.3.x in Weblogic 10.x

ndipiazza nicholas.dipiazza at gmail.com
Wed Feb 29 02:19:47 EST 2012


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 at 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.




More information about the rules-users mailing list