You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Łukasz Budnik <lu...@gmail.com> on 2010/07/01 08:08:35 UTC
Re: RPC style CXF BC throwing NPE
Hi Freeman,
Apologies for not replying sooner. Hard times on a project.
I'm using apache-servicemix-4.2.0-fuse-01-00.
In the attached zip archive please do find two projects. As the names
indicate they are CXF BC ans SE components.
steps to reproduce this error:
cd apache-ode-deploy-cxf-bc
mvn install
cd ..
cd apache-ode-deploy-cxf-se
mvn install -Dmaven.test.skip=true
in Karaf's console:
osgi:install -s mvn:org.xh.servicemix4/apache-ode-deploy-cxf-bc
osgi:install -s mvn:org.xh.servicemix4/apache-ode-deploy-cxf-se
from apache-ode-deploy-cxf-se directory invoke IT case:
mvn integration-test
in Karaf's console:
log:display
It will give you MEP not found. Why? Because Apache CXF code gen
generates the very same SOAP message (the pmapi namespace) I'm using
with my current ODE war distribution, the very same message is
generated using soapUI...
But, when I change the namespace to .../deployapi as you suggested,
and use for example soapUI:
<?xml version="1.0" ?><S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns3:deploy
xmlns:ns2="http://www.apache.org/ode/deployapi"
xmlns:ns3="http://www.apache.org/ode/deployapi"><name>Just a
test</name><package><ns2:zip>VEhWcllYTjZJRUoxWkc1cGF5QjBaWE4w</ns2:zip></package></ns3:deploy></S:Body></S:Envelope>
I get get a different error:
08:01:29,875 | WARN | -cxf-se-thread-2 | PhaseInterceptorChain
| ache.cxf.common.logging.LogUtils 361 | Interceptor for
{http://www.apache.org/
ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi}deploy
has thrown exception, unwinding now
java.lang.NullPointerException
at org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:291)
at org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
at org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:65)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
at org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
at org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
08:01:29,875 | ERROR | -cxf-se-thread-2 | JBIDestinationOutputStream
| t.jbi.JBIDestinationOutputStream 146 | error sending Out
message
java.lang.NullPointerException
at org.apache.cxf.transport.jbi.JBIDestinationOutputStream.commitOutputMessage(JBIDestinationOutputStream.java:99)
at org.apache.cxf.transport.jbi.JBIDestinationOutputStream.doClose(JBIDestinationOutputStream.java:71)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:185)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:292)
at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
at org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
at org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
thanks,
Lukasz
On 28 June 2010 18:09, Freeman Fang <fr...@gmail.com> wrote:
> Hi,
>
> If you can provide your testcase which I can build and deploy, it would be
> more helpful.
>
> Thanks
> Freeman
> On 2010-6-28, at 下午11:56, Łukasz Budnik wrote:
>
>> Hi Freeman,
>>
>> It turned out that I had a typo in the namespace declaration. My bad, I
>> take it.
>>
>> It works, but why, I don't know. I have been using this SOAP message
>> with ODE war distribution since 1.1.1 version and never had a problem
>> with that.
>>
>> What is more soapUI 3.5 generates a sample request using the
>> http://www.apache.org/ode/pmapi namespace.
>>
>> OK, but using the deployapi namespace I was able to pass the following
>> SOAP message:
>>
>> <soapenv:Envelope
>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>> xmlns:pmap="http://www.apache.org/ode/deployapi"
>> xmlns:dep="http://www.apache.org/ode/deployapi"
>> xmlns:xm="http://www.w3.org/2005/05/xmlmime">
>> <soapenv:Header/>
>> <soapenv:Body>
>> <pmap:deploy>
>> <name>go go!</name>
>> <package>
>> <dep:zip>THVrYXN6IEJ1ZG5payB0ZXN0</dep:zip>
>> </package>
>> </pmap:deploy>
>> </soapenv:Body>
>> </soapenv:Envelope>
>>
>> to Apache CXF generated SE (CXF code gen Maven2 plugin):
>>
>> public DeployUnit deploy(String name, Package package1) {
>> Base64Binary zip = package1.getZip();
>> System.out.println("Base 64 ==> " + new
>> String(zip.getValue()));
>> DeployUnit deployUnit = new DeployUnit();
>> deployUnit.setName(name);
>> return deployUnit;
>> }
>>
>> The result was:
>>
>> karaf@root> Base 64 ==> Lukasz Budnik test // output of
>> System.out.println("Base 64 ==> ...);
>>
>> and exception from log:display:
>>
>> 17:45:35,624 | WARN | -cxf-se-thread-6 | PhaseInterceptorChain
>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>> {http://www.apache.org/
>>
>> ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi}deploy
>> has thrown exception, unwinding now
>> java.lang.NullPointerException
>> at
>> org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:291)
>> at
>> org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
>> at
>> org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:65)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>> at
>> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>> at
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>> at
>> org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
>> at
>> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>> at java.lang.Thread.run(Thread.java:619)
>> 17:45:35,640 | ERROR | -cxf-se-thread-6 | JBIDestinationOutputStream
>> | t.jbi.JBIDestinationOutputStream 146 | error sending Out
>> message
>> java.lang.NullPointerException
>> at
>> org.apache.cxf.transport.jbi.JBIDestinationOutputStream.commitOutputMessage(JBIDestinationOutputStream.java:99)
>> at
>> org.apache.cxf.transport.jbi.JBIDestinationOutputStream.doClose(JBIDestinationOutputStream.java:71)
>> at
>> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:185)
>> at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> at
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>> at
>> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:292)
>> at
>> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>> at
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>> at
>> org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
>> at
>> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
>>
>> Is it something wrong with the Apache ODE deploy.wsdl file?
>>
>> thanks,
>> Łukasz
>>
>> On 25 June 2010 16:26, Freeman Fang <fr...@gmail.com> wrote:
>>>
>>> Hi,
>>>
>>> What's the smx version you are using?
>>> What's the exception you get now?
>>>
>>> Are you sure the message you send to cxf bc consumer is exactly same as I
>>> post here?
>>>
>>> You can add LoggingInInterceptor for cxf bc conusmer endpoint to print
>>> out
>>> the message received.
>>>
>>> Freeman
>>> On 2010-6-25, at 下午9:56, Łukasz Budnik wrote:
>>>
>>>> Hi Freeman,
>>>>
>>>> The SOAP request was based on one of the Apache ODE Test and was
>>>> generated by ODE ServiceClientUtil class. The whole
>>>> http://nuntius.eti.pg.gda.pl system uses it that way and it works :)
>>>>
>>>> OK, but I changed the namespace to http://www.apache.org/ode/deployapi
>>>> and I still get the very same error.
>>>>
>>>> Any other ideas?
>>>>
>>>> thanks,
>>>> Łukasz
>>>>
>>>> On 25 June 2010 05:40, Freeman Fang <fr...@gmail.com> wrote:
>>>>>
>>>>> Well, the request message should be
>>>>>
>>>>> <soapenv:Envelope
>>>>>
>>>>>
>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><pmapi:listDeployedPackages
>>>>>
>>>>>
>>>>> xmlns:pmapi="http://www.apache.org/ode/deployapi"></pmapi:listDeployedPackages></soapenv:Body></soapenv:Envelope>
>>>>>
>>>>> according to your wsdl.
>>>>>
>>>>> You are using wrong namespace, which cause can't find
>>>>> BindingOperationInfo,
>>>>> this is the root reason for that exception.
>>>>>
>>>>> Freeman
>>>>> On 2010-6-24, at 下午2:01, Łukasz Budnik wrote:
>>>>>
>>>>>> Hi Freeman,
>>>>>>
>>>>>> OK. So deploy.wsdl, pmapi.xsd, and xmlmime.xsd are taken from Apache
>>>>>> ODE war distribution (all attached).
>>>>>>
>>>>>> The deploy SOAP message would be too large to copy and paste (as it
>>>>>> contains a base64 zip archive), but here is a SOAP message for a
>>>>>> listDeployedPackages operation:
>>>>>>
>>>>>> <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
>>>>>>
>>>>>>
>>>>>>
>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><pmapi:listDeployedPackages
>>>>>>
>>>>>>
>>>>>>
>>>>>> xmlns:pmapi="http://www.apache.org/ode/pmapi"></pmapi:listDeployedPackages></soapenv:Body></soapenv:Envelope>
>>>>>>
>>>>>> It gives me MEP not found and NPE.
>>>>>>
>>>>>> thanks,
>>>>>> Łukasz
>>>>>>
>>>>>> On 24 June 2010 04:24, Freeman Fang <fr...@gmail.com> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Seems the exception is caused by can't extract BindingOperationInfo
>>>>>>> from
>>>>>>> incoming soap message according to the wsdl.
>>>>>>>
>>>>>>> What's your wsdl and incoming soap message looks like?
>>>>>>>
>>>>>>> If you can append a simple testcase, which I can build and deploy,
>>>>>>> that
>>>>>>> would be more helpful.
>>>>>>>
>>>>>>> Freeman
>>>>>>> On 2010-6-23, at 下午10:59, Łukasz Budnik wrote:
>>>>>>>
>>>>>>>> Hi SM users,
>>>>>>>>
>>>>>>>> The system I'm developing uses Apache ODE war distribution. I'm
>>>>>>>> investigating a possibility of moving to Apache ODE JBI
>>>>>>>> distribution.
>>>>>>>>
>>>>>>>> In my system all operations on Apache ODE are performed using Web
>>>>>>>> Services.
>>>>>>>>
>>>>>>>> I'm able to write CXF BC components for Process and Instance
>>>>>>>> Management Services and they work like a charm.
>>>>>>>>
>>>>>>>> Unfortunately there is no DeploymentService provided. I decided to
>>>>>>>> write a simple mock for it.
>>>>>>>>
>>>>>>>> I took deploy.wsdl from ODE war distribution and created a CXF BC
>>>>>>>> for
>>>>>>>> it. I also wrote a simple CXF SE. I wanted to test it using soapUI,
>>>>>>>> but failed.
>>>>>>>>
>>>>>>>> I'm getting these errors:
>>>>>>>>
>>>>>>>> 16:57:09,359 | WARN | 2@qtp-18353341-0 | PhaseInterceptorChain
>>>>>>>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>>>>>>>> {http://www.apache.org/
>>>>>>>> ode/deployapi}DeploymentService has thrown exception, unwinding now
>>>>>>>> java.lang.NullPointerException: MEP not found
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> org.apache.servicemix.cxfbc.interceptors.JbiInInterceptor.createExchange(JbiInInterceptor.java:117)
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> org.apache.servicemix.cxfbc.interceptors.JbiInInterceptor.handleMessage(JbiInInterceptor.java:63)
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:675)
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:312)
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:276)
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>>>>>> at
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>>>>>>>>
>>>>>>>> I looked up the source code, but I cannot tell much.
>>>>>>>>
>>>>>>>> any one ever experienced this kind of problem?
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>> Łukasz
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Freeman Fang
>>>>>>> ------------------------
>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>
>>>>>>>
>>>>>> <deploy.wsdl><pmapi.xsd><xmlmime.xsd>
>>>>>
>>>>>
>>>>> --
>>>>> Freeman Fang
>>>>> ------------------------
>>>>> Open Source SOA: http://fusesource.com
>>>>>
>>>>>
>>>
>>>
>>> --
>>> Freeman Fang
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>>
>>>
>
>
> --
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
>
>
Re: RPC style CXF BC throwing NPE
Posted by Freeman Fang <fr...@gmail.com>.
On 2010-7-2, at 下午10:17, Łukasz Budnik wrote:
> Hi Freeman,
>
> I wrote a simple test. I used Apache CXF code gen plugin + failsafe +
> jetty plugin.
>
> I'm generating JAX-WS stubs both client and server classes from the
> very same WSDL file.
>
> Using CXF 2.2.2 and JAX-WS client (with pmapi pmapi namespace) I got:
>
> WARNING: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Message part
> {http://www.apache.org/ode/pmapi}deploy was not recognized. (Does it
> exist in service WSDL?)
> at
> org
> .apache
> .cxf
> .interceptor.BareInInterceptor.handleMessage(BareInInterceptor.java:
> 133)
> at
> org
> .apache
> .cxf
> .binding
> .soap
> .interceptor.RPCInInterceptor.handleMessage(RPCInInterceptor.java:111)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 236)
> at
> org
> .apache
> .cxf
> .transport
> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104)
> at
> org
> .apache
> .cxf
> .transport.servlet.ServletDestination.invoke(ServletDestination.java:
> 98)
> at
> org
> .apache
> .cxf
> .transport
> .servlet.ServletController.invokeDestination(ServletController.java:
> 392)
> at
> org
> .apache
> .cxf
> .transport.servlet.ServletController.invoke(ServletController.java:
> 170)
> at
> org
> .apache
> .cxf
> .transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:
> 142)
> at
> org
> .apache
> .cxf
> .transport
> .servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:45)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at
> org
> .apache
> .cxf
> .transport
> .servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:101)
>
> When I used burp suite proxy to intercept and modify SOAP request
> (deployapi namespace), the response was OK.
>
> I did the same with apache-servicemix-4.2.0-fuse-01-00 and my BC and
> SE units.
>
> First SOAP message with pmapi namespace I got:
>
> --------------------------------------
> 15:41:47,635 | WARN | 66@qtp-8476722-4 | PhaseInterceptorChain
> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
> {http://www.apache.org/
> ode/deployapi}DeploymentService has thrown exception, unwinding now
> java.lang.NullPointerException: MEP not found
> at
> org
> .apache
> .servicemix
> .cxfbc
> .interceptors.JbiInInterceptor.createExchange(JbiInInterceptor.java:
> 117)
> at
> org
> .apache
> .servicemix
> .cxfbc
> .interceptors.JbiInInterceptor.handleMessage(JbiInInterceptor.java:63)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 243)
> at
> org
> .apache
> .cxf
> .transport
> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
> at org.apache.servicemix.cxfbc.CxfBcConsumer
> $JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:675)
> at
> org
> .apache
> .cxf
> .transport
> .http_jetty
> .JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:312)
> at
> org
> .apache
> .cxf
> .transport
> .http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:
> 276)
> at
> org
> .apache
> .cxf
> .transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:
> 70)
>
> as expected I would say :)
>
> then I modified, my IT case to point it to burp suite proxy:
>
> ((BindingProvider
> )portType
> ).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
> "http://localhost:8282/ode/processes/DeploymentService");
>
> after I changed the namespace to deployapi, it didn't work as I
> previously wrote about it! It hit the SE unit, I saw my
> System.out.println() message, the exception was:
>
> 15:48:23,794 | WARN | -cxf-se-thread-3 | PhaseInterceptorChain
> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
> {http://www.apache.org/
> ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi
> }deploy
> has thrown exception, unwinding now
> java.lang.NullPointerException
> at
> org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:
> 291)
> at
> org
> .apache
> .cxf
> .binding
> .soap
> .interceptor
> .RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
> at
> org
> .apache
> .cxf
> .binding
> .soap
> .interceptor.RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:
> 65)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 243)
> at
> org
> .apache
> .cxf
> .interceptor
> .OutgoingChainInterceptor
> .handleMessage(OutgoingChainInterceptor.java:76)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 243)
> at
> org
> .apache
> .cxf
> .transport
> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
> at
> org
> .apache
> .cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
> 156)
> at
> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
> 432)
>
> The IT case, waits, and waits for the response untill there is a
> timeout exception.
>
> It's very confusing. There is one WSDL file, and based on it CXF
> client creates a message that CXF server cannot process.
>
Hi,
Great test! :-)
Yeah, so now you verified this deploy.wsdl(rpc style) can't work with
standalone cxf client and server(not sure it's an invalid wsdl problem
or real cxf issue now), please send your testcase(which involve
standalone cxf client & server only, not servicemix part) to cxf
maillinglist, I believe you can get more quick help there.
Btw, as the latest cxf released version is 2.2.9 but you still use
2.2.2 to test, would you please also test it with the latest cxf
2.2.9, just ensure you didn't miss any recent fix.
Freeman
> thanks,
> Łukasz
>
> On 1 July 2010 09:40, Freeman Fang <fr...@gmail.com> wrote:
>> Hi,
>>
>> A quick question, did you ever run standalone cxf client and cxf
>> server(no
>> servicemix get involved at all) with this deploy wsdl?
>> If not, could you please do a quick test with it?
>> I just need ensure deploy.wsdl works with standalone cxf firstly.
>>
>> Thanks
>> Freeman
>> On 2010-7-1, at 下午2:08, Łukasz Budnik wrote:
>>
>>> Hi Freeman,
>>>
>>> Apologies for not replying sooner. Hard times on a project.
>>>
>>> I'm using apache-servicemix-4.2.0-fuse-01-00.
>>>
>>> In the attached zip archive please do find two projects. As the
>>> names
>>> indicate they are CXF BC ans SE components.
>>>
>>> steps to reproduce this error:
>>>
>>> cd apache-ode-deploy-cxf-bc
>>> mvn install
>>> cd ..
>>> cd apache-ode-deploy-cxf-se
>>> mvn install -Dmaven.test.skip=true
>>>
>>>
>>> in Karaf's console:
>>>
>>> osgi:install -s mvn:org.xh.servicemix4/apache-ode-deploy-cxf-bc
>>> osgi:install -s mvn:org.xh.servicemix4/apache-ode-deploy-cxf-se
>>>
>>> from apache-ode-deploy-cxf-se directory invoke IT case:
>>>
>>> mvn integration-test
>>>
>>> in Karaf's console:
>>>
>>> log:display
>>>
>>> It will give you MEP not found. Why? Because Apache CXF code gen
>>> generates the very same SOAP message (the pmapi namespace) I'm using
>>> with my current ODE war distribution, the very same message is
>>> generated using soapUI...
>>>
>>> But, when I change the namespace to .../deployapi as you suggested,
>>> and use for example soapUI:
>>>
>>> <?xml version="1.0" ?><S:Envelope
>>> xmlns:S="http://schemas.xmlsoap.org/soap/
>>> envelope/"><S:Body><ns3:deploy
>>> xmlns:ns2="http://www.apache.org/ode/deployapi"
>>> xmlns:ns3="http://www.apache.org/ode/deployapi"><name>Just a
>>>
>>> test</name><package><ns2:zip>VEhWcllYTjZJRUoxWkc1cGF5QjBaWE4w</
>>> ns2:zip></package></ns3:deploy></S:Body></S:Envelope>
>>>
>>> I get get a different error:
>>>
>>> 08:01:29,875 | WARN | -cxf-se-thread-2 | PhaseInterceptorChain
>>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>>> {http://www.apache.org/
>>>
>>> ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi
>>> }deploy
>>> has thrown exception, unwinding now
>>> java.lang.NullPointerException
>>> at
>>> org
>>> .apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:
>>> 291)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .binding
>>> .soap
>>> .interceptor
>>> .RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .binding
>>> .soap
>>> .interceptor
>>> .RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:65)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .interceptor
>>> .OutgoingChainInterceptor
>>> .handleMessage(OutgoingChainInterceptor.java:76)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport
>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>>> 156)
>>> at
>>> org
>>> .apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
>>> 432)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>> 581)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common
>>> .AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
>>> at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle
>>> $2.run(AsyncBaseLifeCycle.java:347)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor
>>> $Worker.runTask(ThreadPoolExecutor.java:885)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor
>>> $Worker.run(ThreadPoolExecutor.java:907)
>>> at java.lang.Thread.run(Thread.java:619)
>>> 08:01:29,875 | ERROR | -cxf-se-thread-2 | JBIDestinationOutputStream
>>> | t.jbi.JBIDestinationOutputStream 146 | error sending Out
>>> message
>>> java.lang.NullPointerException
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport
>>> .jbi
>>> .JBIDestinationOutputStream
>>> .commitOutputMessage(JBIDestinationOutputStream.java:99)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport
>>> .jbi
>>> .JBIDestinationOutputStream
>>> .doClose(JBIDestinationOutputStream.java:71)
>>> at
>>> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:
>>> 185)
>>> at
>>> org
>>> .apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>> at
>>> org.apache.cxf.interceptor.MessageSenderInterceptor
>>> $
>>> MessageSenderEndingInterceptor
>>> .handleMessage(MessageSenderInterceptor.java:62)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .interceptor
>>> .AbstractFaultChainInitiatorObserver
>>> .onMessage(AbstractFaultChainInitiatorObserver.java:96)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:292)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .interceptor
>>> .OutgoingChainInterceptor
>>> .handleMessage(OutgoingChainInterceptor.java:76)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport
>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>>> 156)
>>> at
>>> org
>>> .apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
>>> 432)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>> 581)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common
>>> .AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
>>> at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle
>>> $2.run(AsyncBaseLifeCycle.java:347)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor
>>> $Worker.runTask(ThreadPoolExecutor.java:885)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor
>>> $Worker.run(ThreadPoolExecutor.java:907)
>>> at java.lang.Thread.run(Thread.java:619)
>>>
>>>
>>> thanks,
>>> Lukasz
>>>
>>> On 28 June 2010 18:09, Freeman Fang <fr...@gmail.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> If you can provide your testcase which I can build and deploy, it
>>>> would
>>>> be
>>>> more helpful.
>>>>
>>>> Thanks
>>>> Freeman
>>>> On 2010-6-28, at 下午11:56, Łukasz Budnik wrote:
>>>>
>>>>> Hi Freeman,
>>>>>
>>>>> It turned out that I had a typo in the namespace declaration. My
>>>>> bad, I
>>>>> take it.
>>>>>
>>>>> It works, but why, I don't know. I have been using this SOAP
>>>>> message
>>>>> with ODE war distribution since 1.1.1 version and never had a
>>>>> problem
>>>>> with that.
>>>>>
>>>>> What is more soapUI 3.5 generates a sample request using the
>>>>> http://www.apache.org/ode/pmapi namespace.
>>>>>
>>>>> OK, but using the deployapi namespace I was able to pass the
>>>>> following
>>>>> SOAP message:
>>>>>
>>>>> <soapenv:Envelope
>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>>>>> xmlns:pmap="http://www.apache.org/ode/deployapi"
>>>>> xmlns:dep="http://www.apache.org/ode/deployapi"
>>>>> xmlns:xm="http://www.w3.org/2005/05/xmlmime">
>>>>> <soapenv:Header/>
>>>>> <soapenv:Body>
>>>>> <pmap:deploy>
>>>>> <name>go go!</name>
>>>>> <package>
>>>>> <dep:zip>THVrYXN6IEJ1ZG5payB0ZXN0</dep:zip>
>>>>> </package>
>>>>> </pmap:deploy>
>>>>> </soapenv:Body>
>>>>> </soapenv:Envelope>
>>>>>
>>>>> to Apache CXF generated SE (CXF code gen Maven2 plugin):
>>>>>
>>>>> public DeployUnit deploy(String name, Package package1) {
>>>>> Base64Binary zip = package1.getZip();
>>>>> System.out.println("Base 64 ==> " + new
>>>>> String(zip.getValue()));
>>>>> DeployUnit deployUnit = new DeployUnit();
>>>>> deployUnit.setName(name);
>>>>> return deployUnit;
>>>>> }
>>>>>
>>>>> The result was:
>>>>>
>>>>> karaf@root> Base 64 ==> Lukasz Budnik test // output of
>>>>> System.out.println("Base 64 ==> ...);
>>>>>
>>>>> and exception from log:display:
>>>>>
>>>>> 17:45:35,624 | WARN | -cxf-se-thread-6 | PhaseInterceptorChain
>>>>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>>>>> {http://www.apache.org/
>>>>>
>>>>>
>>>>> ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi
>>>>> }deploy
>>>>> has thrown exception, unwinding now
>>>>> java.lang.NullPointerException
>>>>> at
>>>>> org
>>>>> .apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:
>>>>> 291)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .binding
>>>>> .soap
>>>>> .interceptor
>>>>> .RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .binding
>>>>> .soap
>>>>> .interceptor
>>>>> .RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:65)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .phase
>>>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .interceptor
>>>>> .OutgoingChainInterceptor
>>>>> .handleMessage(OutgoingChainInterceptor.java:76)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .phase
>>>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .transport
>>>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:
>>>>> 109)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>>>>> 156)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common
>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common
>>>>> .AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:
>>>>> 478)
>>>>> at
>>>>>
>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle
>>>>> $2.run(AsyncBaseLifeCycle.java:347)
>>>>> at
>>>>>
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.runTask(ThreadPoolExecutor.java:885)
>>>>> at
>>>>>
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.run(ThreadPoolExecutor.java:907)
>>>>> at java.lang.Thread.run(Thread.java:619)
>>>>> 17:45:35,640 | ERROR | -cxf-se-thread-6 |
>>>>> JBIDestinationOutputStream
>>>>> | t.jbi.JBIDestinationOutputStream 146 | error sending Out
>>>>> message
>>>>> java.lang.NullPointerException
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .transport
>>>>> .jbi
>>>>> .JBIDestinationOutputStream
>>>>> .commitOutputMessage(JBIDestinationOutputStream.java:99)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .transport
>>>>> .jbi
>>>>> .JBIDestinationOutputStream
>>>>> .doClose(JBIDestinationOutputStream.java:71)
>>>>> at
>>>>> org
>>>>> .apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:
>>>>> 185)
>>>>> at
>>>>> org
>>>>> .apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:
>>>>> 66)
>>>>> at
>>>>>
>>>>> org.apache.cxf.interceptor.MessageSenderInterceptor
>>>>> $
>>>>> MessageSenderEndingInterceptor
>>>>> .handleMessage(MessageSenderInterceptor.java:62)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .phase
>>>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .interceptor
>>>>> .AbstractFaultChainInitiatorObserver
>>>>> .onMessage(AbstractFaultChainInitiatorObserver.java:96)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .phase
>>>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:292)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .interceptor
>>>>> .OutgoingChainInterceptor
>>>>> .handleMessage(OutgoingChainInterceptor.java:76)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .phase
>>>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .transport
>>>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:
>>>>> 109)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>>>>> 156)
>>>>> at
>>>>>
>>>>> org
>>>>> .apache
>>>>> .servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
>>>>>
>>>>> Is it something wrong with the Apache ODE deploy.wsdl file?
>>>>>
>>>>> thanks,
>>>>> Łukasz
>>>>>
>>>>> On 25 June 2010 16:26, Freeman Fang <fr...@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> What's the smx version you are using?
>>>>>> What's the exception you get now?
>>>>>>
>>>>>> Are you sure the message you send to cxf bc consumer is exactly
>>>>>> same as
>>>>>> I
>>>>>> post here?
>>>>>>
>>>>>> You can add LoggingInInterceptor for cxf bc conusmer endpoint
>>>>>> to print
>>>>>> out
>>>>>> the message received.
>>>>>>
>>>>>> Freeman
>>>>>> On 2010-6-25, at 下午9:56, Łukasz Budnik wrote:
>>>>>>
>>>>>>> Hi Freeman,
>>>>>>>
>>>>>>> The SOAP request was based on one of the Apache ODE Test and was
>>>>>>> generated by ODE ServiceClientUtil class. The whole
>>>>>>> http://nuntius.eti.pg.gda.pl system uses it that way and it
>>>>>>> works :)
>>>>>>>
>>>>>>> OK, but I changed the namespace to http://www.apache.org/ode/deployapi
>>>>>>> and I still get the very same error.
>>>>>>>
>>>>>>> Any other ideas?
>>>>>>>
>>>>>>> thanks,
>>>>>>> Łukasz
>>>>>>>
>>>>>>> On 25 June 2010 05:40, Freeman Fang <fr...@gmail.com>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Well, the request message should be
>>>>>>>>
>>>>>>>> <soapenv:Envelope
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/
>>>>>>>> envelope/"><soapenv:Body><pmapi:listDeployedPackages
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> xmlns:pmapi="http://www.apache.org/ode/deployapi"></
>>>>>>>> pmapi:listDeployedPackages></soapenv:Body></soapenv:Envelope>
>>>>>>>>
>>>>>>>> according to your wsdl.
>>>>>>>>
>>>>>>>> You are using wrong namespace, which cause can't find
>>>>>>>> BindingOperationInfo,
>>>>>>>> this is the root reason for that exception.
>>>>>>>>
>>>>>>>> Freeman
>>>>>>>> On 2010-6-24, at 下午2:01, Łukasz Budnik wrote:
>>>>>>>>
>>>>>>>>> Hi Freeman,
>>>>>>>>>
>>>>>>>>> OK. So deploy.wsdl, pmapi.xsd, and xmlmime.xsd are taken
>>>>>>>>> from Apache
>>>>>>>>> ODE war distribution (all attached).
>>>>>>>>>
>>>>>>>>> The deploy SOAP message would be too large to copy and paste
>>>>>>>>> (as it
>>>>>>>>> contains a base64 zip archive), but here is a SOAP message
>>>>>>>>> for a
>>>>>>>>> listDeployedPackages operation:
>>>>>>>>>
>>>>>>>>> <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/
>>>>>>>>> envelope/"><soapenv:Body><pmapi:listDeployedPackages
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> xmlns:pmapi="http://www.apache.org/ode/pmapi"></
>>>>>>>>> pmapi:listDeployedPackages></soapenv:Body></soapenv:Envelope>
>>>>>>>>>
>>>>>>>>> It gives me MEP not found and NPE.
>>>>>>>>>
>>>>>>>>> thanks,
>>>>>>>>> Łukasz
>>>>>>>>>
>>>>>>>>> On 24 June 2010 04:24, Freeman Fang <fr...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> Seems the exception is caused by can't extract
>>>>>>>>>> BindingOperationInfo
>>>>>>>>>> from
>>>>>>>>>> incoming soap message according to the wsdl.
>>>>>>>>>>
>>>>>>>>>> What's your wsdl and incoming soap message looks like?
>>>>>>>>>>
>>>>>>>>>> If you can append a simple testcase, which I can build and
>>>>>>>>>> deploy,
>>>>>>>>>> that
>>>>>>>>>> would be more helpful.
>>>>>>>>>>
>>>>>>>>>> Freeman
>>>>>>>>>> On 2010-6-23, at 下午10:59, Łukasz Budnik wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi SM users,
>>>>>>>>>>>
>>>>>>>>>>> The system I'm developing uses Apache ODE war
>>>>>>>>>>> distribution. I'm
>>>>>>>>>>> investigating a possibility of moving to Apache ODE JBI
>>>>>>>>>>> distribution.
>>>>>>>>>>>
>>>>>>>>>>> In my system all operations on Apache ODE are performed
>>>>>>>>>>> using Web
>>>>>>>>>>> Services.
>>>>>>>>>>>
>>>>>>>>>>> I'm able to write CXF BC components for Process and Instance
>>>>>>>>>>> Management Services and they work like a charm.
>>>>>>>>>>>
>>>>>>>>>>> Unfortunately there is no DeploymentService provided. I
>>>>>>>>>>> decided to
>>>>>>>>>>> write a simple mock for it.
>>>>>>>>>>>
>>>>>>>>>>> I took deploy.wsdl from ODE war distribution and created a
>>>>>>>>>>> CXF BC
>>>>>>>>>>> for
>>>>>>>>>>> it. I also wrote a simple CXF SE. I wanted to test it using
>>>>>>>>>>> soapUI,
>>>>>>>>>>> but failed.
>>>>>>>>>>>
>>>>>>>>>>> I'm getting these errors:
>>>>>>>>>>>
>>>>>>>>>>> 16:57:09,359 | WARN | 2@qtp-18353341-0 |
>>>>>>>>>>> PhaseInterceptorChain
>>>>>>>>>>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>>>>>>>>>>> {http://www.apache.org/
>>>>>>>>>>> ode/deployapi}DeploymentService has thrown exception,
>>>>>>>>>>> unwinding
>>>>>>>>>>> now
>>>>>>>>>>> java.lang.NullPointerException: MEP not found
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org
>>>>>>>>>>> .apache
>>>>>>>>>>> .servicemix
>>>>>>>>>>> .cxfbc
>>>>>>>>>>> .interceptors
>>>>>>>>>>> .JbiInInterceptor.createExchange(JbiInInterceptor.java:117)
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org
>>>>>>>>>>> .apache
>>>>>>>>>>> .servicemix
>>>>>>>>>>> .cxfbc
>>>>>>>>>>> .interceptors
>>>>>>>>>>> .JbiInInterceptor.handleMessage(JbiInInterceptor.java:63)
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org
>>>>>>>>>>> .apache
>>>>>>>>>>> .cxf
>>>>>>>>>>> .phase
>>>>>>>>>>> .PhaseInterceptorChain
>>>>>>>>>>> .doIntercept(PhaseInterceptorChain.java:243)
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org
>>>>>>>>>>> .apache
>>>>>>>>>>> .cxf
>>>>>>>>>>> .transport
>>>>>>>>>>> .ChainInitiationObserver
>>>>>>>>>>> .onMessage(ChainInitiationObserver.java:109)
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org.apache.servicemix.cxfbc.CxfBcConsumer
>>>>>>>>>>> $JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:
>>>>>>>>>>> 675)
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org
>>>>>>>>>>> .apache
>>>>>>>>>>> .cxf
>>>>>>>>>>> .transport
>>>>>>>>>>> .http_jetty
>>>>>>>>>>> .JettyHTTPDestination
>>>>>>>>>>> .serviceRequest(JettyHTTPDestination.java:312)
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org
>>>>>>>>>>> .apache
>>>>>>>>>>> .cxf
>>>>>>>>>>> .transport
>>>>>>>>>>> .http_jetty
>>>>>>>>>>> .JettyHTTPDestination.doService(JettyHTTPDestination.java:
>>>>>>>>>>> 276)
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org
>>>>>>>>>>> .apache
>>>>>>>>>>> .cxf
>>>>>>>>>>> .transport
>>>>>>>>>>> .http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:
>>>>>>>>>>> 70)
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org
>>>>>>>>>>> .mortbay
>>>>>>>>>>> .jetty.handler.ContextHandler.handle(ContextHandler.java:
>>>>>>>>>>> 765)
>>>>>>>>>>> at
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> org
>>>>>>>>>>> .mortbay
>>>>>>>>>>> .jetty
>>>>>>>>>>> .handler
>>>>>>>>>>> .ContextHandlerCollection
>>>>>>>>>>> .handle(ContextHandlerCollection.java:230)
>>>>>>>>>>>
>>>>>>>>>>> I looked up the source code, but I cannot tell much.
>>>>>>>>>>>
>>>>>>>>>>> any one ever experienced this kind of problem?
>>>>>>>>>>>
>>>>>>>>>>> thanks,
>>>>>>>>>>> Łukasz
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Freeman Fang
>>>>>>>>>> ------------------------
>>>>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> <deploy.wsdl><pmapi.xsd><xmlmime.xsd>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Freeman Fang
>>>>>>>> ------------------------
>>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Freeman Fang
>>>>>> ------------------------
>>>>>> Open Source SOA: http://fusesource.com
>>>>>>
>>>>>>
>>>>
>>>>
>>>> --
>>>> Freeman Fang
>>>> ------------------------
>>>> Open Source SOA: http://fusesource.com
>>>>
>>>>
>>> <apache-ode-deployapi-sm4.zip>
>>
>>
>> --
>> Freeman Fang
>> ------------------------
>> Open Source SOA: http://fusesource.com
>>
>>
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com
Re: RPC style CXF BC throwing NPE
Posted by Łukasz Budnik <lu...@gmail.com>.
Hi Freeman,
I wrote a simple test. I used Apache CXF code gen plugin + failsafe +
jetty plugin.
I'm generating JAX-WS stubs both client and server classes from the
very same WSDL file.
Using CXF 2.2.2 and JAX-WS client (with pmapi pmapi namespace) I got:
WARNING: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Message part
{http://www.apache.org/ode/pmapi}deploy was not recognized. (Does it
exist in service WSDL?)
at org.apache.cxf.interceptor.BareInInterceptor.handleMessage(BareInInterceptor.java:133)
at org.apache.cxf.binding.soap.interceptor.RPCInInterceptor.handleMessage(RPCInInterceptor.java:111)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104)
at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:98)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:392)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:170)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:45)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:101)
When I used burp suite proxy to intercept and modify SOAP request
(deployapi namespace), the response was OK.
I did the same with apache-servicemix-4.2.0-fuse-01-00 and my BC and SE units.
First SOAP message with pmapi namespace I got:
--------------------------------------
15:41:47,635 | WARN | 66@qtp-8476722-4 | PhaseInterceptorChain
| ache.cxf.common.logging.LogUtils 361 | Interceptor for
{http://www.apache.org/
ode/deployapi}DeploymentService has thrown exception, unwinding now
java.lang.NullPointerException: MEP not found
at org.apache.servicemix.cxfbc.interceptors.JbiInInterceptor.createExchange(JbiInInterceptor.java:117)
at org.apache.servicemix.cxfbc.interceptors.JbiInInterceptor.handleMessage(JbiInInterceptor.java:63)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
at org.apache.servicemix.cxfbc.CxfBcConsumer$JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:675)
at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:312)
at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:276)
at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
as expected I would say :)
then I modified, my IT case to point it to burp suite proxy:
((BindingProvider)portType).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
"http://localhost:8282/ode/processes/DeploymentService");
after I changed the namespace to deployapi, it didn't work as I
previously wrote about it! It hit the SE unit, I saw my
System.out.println() message, the exception was:
15:48:23,794 | WARN | -cxf-se-thread-3 | PhaseInterceptorChain
| ache.cxf.common.logging.LogUtils 361 | Interceptor for
{http://www.apache.org/
ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi}deploy
has thrown exception, unwinding now
java.lang.NullPointerException
at org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:291)
at org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
at org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:65)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
at org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
The IT case, waits, and waits for the response untill there is a
timeout exception.
It's very confusing. There is one WSDL file, and based on it CXF
client creates a message that CXF server cannot process.
thanks,
Łukasz
On 1 July 2010 09:40, Freeman Fang <fr...@gmail.com> wrote:
> Hi,
>
> A quick question, did you ever run standalone cxf client and cxf server(no
> servicemix get involved at all) with this deploy wsdl?
> If not, could you please do a quick test with it?
> I just need ensure deploy.wsdl works with standalone cxf firstly.
>
> Thanks
> Freeman
> On 2010-7-1, at 下午2:08, Łukasz Budnik wrote:
>
>> Hi Freeman,
>>
>> Apologies for not replying sooner. Hard times on a project.
>>
>> I'm using apache-servicemix-4.2.0-fuse-01-00.
>>
>> In the attached zip archive please do find two projects. As the names
>> indicate they are CXF BC ans SE components.
>>
>> steps to reproduce this error:
>>
>> cd apache-ode-deploy-cxf-bc
>> mvn install
>> cd ..
>> cd apache-ode-deploy-cxf-se
>> mvn install -Dmaven.test.skip=true
>>
>>
>> in Karaf's console:
>>
>> osgi:install -s mvn:org.xh.servicemix4/apache-ode-deploy-cxf-bc
>> osgi:install -s mvn:org.xh.servicemix4/apache-ode-deploy-cxf-se
>>
>> from apache-ode-deploy-cxf-se directory invoke IT case:
>>
>> mvn integration-test
>>
>> in Karaf's console:
>>
>> log:display
>>
>> It will give you MEP not found. Why? Because Apache CXF code gen
>> generates the very same SOAP message (the pmapi namespace) I'm using
>> with my current ODE war distribution, the very same message is
>> generated using soapUI...
>>
>> But, when I change the namespace to .../deployapi as you suggested,
>> and use for example soapUI:
>>
>> <?xml version="1.0" ?><S:Envelope
>> xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns3:deploy
>> xmlns:ns2="http://www.apache.org/ode/deployapi"
>> xmlns:ns3="http://www.apache.org/ode/deployapi"><name>Just a
>>
>> test</name><package><ns2:zip>VEhWcllYTjZJRUoxWkc1cGF5QjBaWE4w</ns2:zip></package></ns3:deploy></S:Body></S:Envelope>
>>
>> I get get a different error:
>>
>> 08:01:29,875 | WARN | -cxf-se-thread-2 | PhaseInterceptorChain
>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>> {http://www.apache.org/
>>
>> ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi}deploy
>> has thrown exception, unwinding now
>> java.lang.NullPointerException
>> at
>> org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:291)
>> at
>> org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
>> at
>> org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:65)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>> at
>> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>> at
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>> at
>> org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
>> at
>> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>> at java.lang.Thread.run(Thread.java:619)
>> 08:01:29,875 | ERROR | -cxf-se-thread-2 | JBIDestinationOutputStream
>> | t.jbi.JBIDestinationOutputStream 146 | error sending Out
>> message
>> java.lang.NullPointerException
>> at
>> org.apache.cxf.transport.jbi.JBIDestinationOutputStream.commitOutputMessage(JBIDestinationOutputStream.java:99)
>> at
>> org.apache.cxf.transport.jbi.JBIDestinationOutputStream.doClose(JBIDestinationOutputStream.java:71)
>> at
>> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:185)
>> at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> at
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>> at
>> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:292)
>> at
>> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>> at
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>> at
>> org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
>> at
>> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>> at java.lang.Thread.run(Thread.java:619)
>>
>>
>> thanks,
>> Lukasz
>>
>> On 28 June 2010 18:09, Freeman Fang <fr...@gmail.com> wrote:
>>>
>>> Hi,
>>>
>>> If you can provide your testcase which I can build and deploy, it would
>>> be
>>> more helpful.
>>>
>>> Thanks
>>> Freeman
>>> On 2010-6-28, at 下午11:56, Łukasz Budnik wrote:
>>>
>>>> Hi Freeman,
>>>>
>>>> It turned out that I had a typo in the namespace declaration. My bad, I
>>>> take it.
>>>>
>>>> It works, but why, I don't know. I have been using this SOAP message
>>>> with ODE war distribution since 1.1.1 version and never had a problem
>>>> with that.
>>>>
>>>> What is more soapUI 3.5 generates a sample request using the
>>>> http://www.apache.org/ode/pmapi namespace.
>>>>
>>>> OK, but using the deployapi namespace I was able to pass the following
>>>> SOAP message:
>>>>
>>>> <soapenv:Envelope
>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>>>> xmlns:pmap="http://www.apache.org/ode/deployapi"
>>>> xmlns:dep="http://www.apache.org/ode/deployapi"
>>>> xmlns:xm="http://www.w3.org/2005/05/xmlmime">
>>>> <soapenv:Header/>
>>>> <soapenv:Body>
>>>> <pmap:deploy>
>>>> <name>go go!</name>
>>>> <package>
>>>> <dep:zip>THVrYXN6IEJ1ZG5payB0ZXN0</dep:zip>
>>>> </package>
>>>> </pmap:deploy>
>>>> </soapenv:Body>
>>>> </soapenv:Envelope>
>>>>
>>>> to Apache CXF generated SE (CXF code gen Maven2 plugin):
>>>>
>>>> public DeployUnit deploy(String name, Package package1) {
>>>> Base64Binary zip = package1.getZip();
>>>> System.out.println("Base 64 ==> " + new
>>>> String(zip.getValue()));
>>>> DeployUnit deployUnit = new DeployUnit();
>>>> deployUnit.setName(name);
>>>> return deployUnit;
>>>> }
>>>>
>>>> The result was:
>>>>
>>>> karaf@root> Base 64 ==> Lukasz Budnik test // output of
>>>> System.out.println("Base 64 ==> ...);
>>>>
>>>> and exception from log:display:
>>>>
>>>> 17:45:35,624 | WARN | -cxf-se-thread-6 | PhaseInterceptorChain
>>>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>>>> {http://www.apache.org/
>>>>
>>>>
>>>> ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi}deploy
>>>> has thrown exception, unwinding now
>>>> java.lang.NullPointerException
>>>> at
>>>> org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:291)
>>>> at
>>>>
>>>> org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
>>>> at
>>>>
>>>> org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:65)
>>>> at
>>>>
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>> at
>>>>
>>>> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
>>>> at
>>>>
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>> at
>>>>
>>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>>>> at
>>>>
>>>> org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
>>>> at
>>>>
>>>> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
>>>> at
>>>>
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>> at
>>>>
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>>> at
>>>>
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
>>>> at
>>>>
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)
>>>> at
>>>>
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>>>> at
>>>>
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>>>> at java.lang.Thread.run(Thread.java:619)
>>>> 17:45:35,640 | ERROR | -cxf-se-thread-6 | JBIDestinationOutputStream
>>>> | t.jbi.JBIDestinationOutputStream 146 | error sending Out
>>>> message
>>>> java.lang.NullPointerException
>>>> at
>>>>
>>>> org.apache.cxf.transport.jbi.JBIDestinationOutputStream.commitOutputMessage(JBIDestinationOutputStream.java:99)
>>>> at
>>>>
>>>> org.apache.cxf.transport.jbi.JBIDestinationOutputStream.doClose(JBIDestinationOutputStream.java:71)
>>>> at
>>>> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:185)
>>>> at
>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>> at
>>>>
>>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>> at
>>>>
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>> at
>>>>
>>>> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
>>>> at
>>>>
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:292)
>>>> at
>>>>
>>>> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:76)
>>>> at
>>>>
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>> at
>>>>
>>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>>>> at
>>>>
>>>> org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
>>>> at
>>>>
>>>> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:432)
>>>>
>>>> Is it something wrong with the Apache ODE deploy.wsdl file?
>>>>
>>>> thanks,
>>>> Łukasz
>>>>
>>>> On 25 June 2010 16:26, Freeman Fang <fr...@gmail.com> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> What's the smx version you are using?
>>>>> What's the exception you get now?
>>>>>
>>>>> Are you sure the message you send to cxf bc consumer is exactly same as
>>>>> I
>>>>> post here?
>>>>>
>>>>> You can add LoggingInInterceptor for cxf bc conusmer endpoint to print
>>>>> out
>>>>> the message received.
>>>>>
>>>>> Freeman
>>>>> On 2010-6-25, at 下午9:56, Łukasz Budnik wrote:
>>>>>
>>>>>> Hi Freeman,
>>>>>>
>>>>>> The SOAP request was based on one of the Apache ODE Test and was
>>>>>> generated by ODE ServiceClientUtil class. The whole
>>>>>> http://nuntius.eti.pg.gda.pl system uses it that way and it works :)
>>>>>>
>>>>>> OK, but I changed the namespace to http://www.apache.org/ode/deployapi
>>>>>> and I still get the very same error.
>>>>>>
>>>>>> Any other ideas?
>>>>>>
>>>>>> thanks,
>>>>>> Łukasz
>>>>>>
>>>>>> On 25 June 2010 05:40, Freeman Fang <fr...@gmail.com> wrote:
>>>>>>>
>>>>>>> Well, the request message should be
>>>>>>>
>>>>>>> <soapenv:Envelope
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><pmapi:listDeployedPackages
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> xmlns:pmapi="http://www.apache.org/ode/deployapi"></pmapi:listDeployedPackages></soapenv:Body></soapenv:Envelope>
>>>>>>>
>>>>>>> according to your wsdl.
>>>>>>>
>>>>>>> You are using wrong namespace, which cause can't find
>>>>>>> BindingOperationInfo,
>>>>>>> this is the root reason for that exception.
>>>>>>>
>>>>>>> Freeman
>>>>>>> On 2010-6-24, at 下午2:01, Łukasz Budnik wrote:
>>>>>>>
>>>>>>>> Hi Freeman,
>>>>>>>>
>>>>>>>> OK. So deploy.wsdl, pmapi.xsd, and xmlmime.xsd are taken from Apache
>>>>>>>> ODE war distribution (all attached).
>>>>>>>>
>>>>>>>> The deploy SOAP message would be too large to copy and paste (as it
>>>>>>>> contains a base64 zip archive), but here is a SOAP message for a
>>>>>>>> listDeployedPackages operation:
>>>>>>>>
>>>>>>>> <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><pmapi:listDeployedPackages
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> xmlns:pmapi="http://www.apache.org/ode/pmapi"></pmapi:listDeployedPackages></soapenv:Body></soapenv:Envelope>
>>>>>>>>
>>>>>>>> It gives me MEP not found and NPE.
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>> Łukasz
>>>>>>>>
>>>>>>>> On 24 June 2010 04:24, Freeman Fang <fr...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> Seems the exception is caused by can't extract BindingOperationInfo
>>>>>>>>> from
>>>>>>>>> incoming soap message according to the wsdl.
>>>>>>>>>
>>>>>>>>> What's your wsdl and incoming soap message looks like?
>>>>>>>>>
>>>>>>>>> If you can append a simple testcase, which I can build and deploy,
>>>>>>>>> that
>>>>>>>>> would be more helpful.
>>>>>>>>>
>>>>>>>>> Freeman
>>>>>>>>> On 2010-6-23, at 下午10:59, Łukasz Budnik wrote:
>>>>>>>>>
>>>>>>>>>> Hi SM users,
>>>>>>>>>>
>>>>>>>>>> The system I'm developing uses Apache ODE war distribution. I'm
>>>>>>>>>> investigating a possibility of moving to Apache ODE JBI
>>>>>>>>>> distribution.
>>>>>>>>>>
>>>>>>>>>> In my system all operations on Apache ODE are performed using Web
>>>>>>>>>> Services.
>>>>>>>>>>
>>>>>>>>>> I'm able to write CXF BC components for Process and Instance
>>>>>>>>>> Management Services and they work like a charm.
>>>>>>>>>>
>>>>>>>>>> Unfortunately there is no DeploymentService provided. I decided to
>>>>>>>>>> write a simple mock for it.
>>>>>>>>>>
>>>>>>>>>> I took deploy.wsdl from ODE war distribution and created a CXF BC
>>>>>>>>>> for
>>>>>>>>>> it. I also wrote a simple CXF SE. I wanted to test it using
>>>>>>>>>> soapUI,
>>>>>>>>>> but failed.
>>>>>>>>>>
>>>>>>>>>> I'm getting these errors:
>>>>>>>>>>
>>>>>>>>>> 16:57:09,359 | WARN | 2@qtp-18353341-0 | PhaseInterceptorChain
>>>>>>>>>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>>>>>>>>>> {http://www.apache.org/
>>>>>>>>>> ode/deployapi}DeploymentService has thrown exception, unwinding
>>>>>>>>>> now
>>>>>>>>>> java.lang.NullPointerException: MEP not found
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.apache.servicemix.cxfbc.interceptors.JbiInInterceptor.createExchange(JbiInInterceptor.java:117)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.apache.servicemix.cxfbc.interceptors.JbiInInterceptor.handleMessage(JbiInInterceptor.java:63)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:675)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:312)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:276)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>>>>>>>>>>
>>>>>>>>>> I looked up the source code, but I cannot tell much.
>>>>>>>>>>
>>>>>>>>>> any one ever experienced this kind of problem?
>>>>>>>>>>
>>>>>>>>>> thanks,
>>>>>>>>>> Łukasz
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Freeman Fang
>>>>>>>>> ------------------------
>>>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>> <deploy.wsdl><pmapi.xsd><xmlmime.xsd>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Freeman Fang
>>>>>>> ------------------------
>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Freeman Fang
>>>>> ------------------------
>>>>> Open Source SOA: http://fusesource.com
>>>>>
>>>>>
>>>
>>>
>>> --
>>> Freeman Fang
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>>
>>>
>> <apache-ode-deployapi-sm4.zip>
>
>
> --
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
>
>
Re: RPC style CXF BC throwing NPE
Posted by Freeman Fang <fr...@gmail.com>.
Hi,
A quick question, did you ever run standalone cxf client and cxf
server(no servicemix get involved at all) with this deploy wsdl?
If not, could you please do a quick test with it?
I just need ensure deploy.wsdl works with standalone cxf firstly.
Thanks
Freeman
On 2010-7-1, at 下午2:08, Łukasz Budnik wrote:
> Hi Freeman,
>
> Apologies for not replying sooner. Hard times on a project.
>
> I'm using apache-servicemix-4.2.0-fuse-01-00.
>
> In the attached zip archive please do find two projects. As the names
> indicate they are CXF BC ans SE components.
>
> steps to reproduce this error:
>
> cd apache-ode-deploy-cxf-bc
> mvn install
> cd ..
> cd apache-ode-deploy-cxf-se
> mvn install -Dmaven.test.skip=true
>
>
> in Karaf's console:
>
> osgi:install -s mvn:org.xh.servicemix4/apache-ode-deploy-cxf-bc
> osgi:install -s mvn:org.xh.servicemix4/apache-ode-deploy-cxf-se
>
> from apache-ode-deploy-cxf-se directory invoke IT case:
>
> mvn integration-test
>
> in Karaf's console:
>
> log:display
>
> It will give you MEP not found. Why? Because Apache CXF code gen
> generates the very same SOAP message (the pmapi namespace) I'm using
> with my current ODE war distribution, the very same message is
> generated using soapUI...
>
> But, when I change the namespace to .../deployapi as you suggested,
> and use for example soapUI:
>
> <?xml version="1.0" ?><S:Envelope
> xmlns:S="http://schemas.xmlsoap.org/soap/
> envelope/"><S:Body><ns3:deploy
> xmlns:ns2="http://www.apache.org/ode/deployapi"
> xmlns:ns3="http://www.apache.org/ode/deployapi"><name>Just a
> test</name><package><ns2:zip>VEhWcllYTjZJRUoxWkc1cGF5QjBaWE4w</
> ns2:zip></package></ns3:deploy></S:Body></S:Envelope>
>
> I get get a different error:
>
> 08:01:29,875 | WARN | -cxf-se-thread-2 | PhaseInterceptorChain
> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
> {http://www.apache.org/
> ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi
> }deploy
> has thrown exception, unwinding now
> java.lang.NullPointerException
> at
> org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:
> 291)
> at
> org
> .apache
> .cxf
> .binding
> .soap
> .interceptor
> .RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
> at
> org
> .apache
> .cxf
> .binding
> .soap
> .interceptor.RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:
> 65)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 243)
> at
> org
> .apache
> .cxf
> .interceptor
> .OutgoingChainInterceptor
> .handleMessage(OutgoingChainInterceptor.java:76)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 243)
> at
> org
> .apache
> .cxf
> .transport
> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
> at
> org
> .apache
> .cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
> 156)
> at
> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
> 432)
> at
> org
> .apache
> .servicemix
> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
> at
> org
> .apache
> .servicemix
> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
> 581)
> at
> org
> .apache
> .servicemix
> .common
> .AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
> at org.apache.servicemix.common.AsyncBaseLifeCycle
> $2.run(AsyncBaseLifeCycle.java:347)
> at java.util.concurrent.ThreadPoolExecutor
> $Worker.runTask(ThreadPoolExecutor.java:885)
> at java.util.concurrent.ThreadPoolExecutor
> $Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
> 08:01:29,875 | ERROR | -cxf-se-thread-2 | JBIDestinationOutputStream
> | t.jbi.JBIDestinationOutputStream 146 | error sending Out
> message
> java.lang.NullPointerException
> at
> org
> .apache
> .cxf
> .transport
> .jbi
> .JBIDestinationOutputStream
> .commitOutputMessage(JBIDestinationOutputStream.java:99)
> at
> org
> .apache
> .cxf
> .transport
> .jbi
> .JBIDestinationOutputStream.doClose(JBIDestinationOutputStream.java:
> 71)
> at
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:
> 185)
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:
> 66)
> at org.apache.cxf.interceptor.MessageSenderInterceptor
> $
> MessageSenderEndingInterceptor
> .handleMessage(MessageSenderInterceptor.java:62)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 243)
> at
> org
> .apache
> .cxf
> .interceptor
> .AbstractFaultChainInitiatorObserver
> .onMessage(AbstractFaultChainInitiatorObserver.java:96)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 292)
> at
> org
> .apache
> .cxf
> .interceptor
> .OutgoingChainInterceptor
> .handleMessage(OutgoingChainInterceptor.java:76)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 243)
> at
> org
> .apache
> .cxf
> .transport
> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
> at
> org
> .apache
> .cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
> 156)
> at
> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
> 432)
> at
> org
> .apache
> .servicemix
> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
> at
> org
> .apache
> .servicemix
> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
> 581)
> at
> org
> .apache
> .servicemix
> .common
> .AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
> at org.apache.servicemix.common.AsyncBaseLifeCycle
> $2.run(AsyncBaseLifeCycle.java:347)
> at java.util.concurrent.ThreadPoolExecutor
> $Worker.runTask(ThreadPoolExecutor.java:885)
> at java.util.concurrent.ThreadPoolExecutor
> $Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
>
>
> thanks,
> Lukasz
>
> On 28 June 2010 18:09, Freeman Fang <fr...@gmail.com> wrote:
>> Hi,
>>
>> If you can provide your testcase which I can build and deploy, it
>> would be
>> more helpful.
>>
>> Thanks
>> Freeman
>> On 2010-6-28, at 下午11:56, Łukasz Budnik wrote:
>>
>>> Hi Freeman,
>>>
>>> It turned out that I had a typo in the namespace declaration. My
>>> bad, I
>>> take it.
>>>
>>> It works, but why, I don't know. I have been using this SOAP message
>>> with ODE war distribution since 1.1.1 version and never had a
>>> problem
>>> with that.
>>>
>>> What is more soapUI 3.5 generates a sample request using the
>>> http://www.apache.org/ode/pmapi namespace.
>>>
>>> OK, but using the deployapi namespace I was able to pass the
>>> following
>>> SOAP message:
>>>
>>> <soapenv:Envelope
>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>>> xmlns:pmap="http://www.apache.org/ode/deployapi"
>>> xmlns:dep="http://www.apache.org/ode/deployapi"
>>> xmlns:xm="http://www.w3.org/2005/05/xmlmime">
>>> <soapenv:Header/>
>>> <soapenv:Body>
>>> <pmap:deploy>
>>> <name>go go!</name>
>>> <package>
>>> <dep:zip>THVrYXN6IEJ1ZG5payB0ZXN0</dep:zip>
>>> </package>
>>> </pmap:deploy>
>>> </soapenv:Body>
>>> </soapenv:Envelope>
>>>
>>> to Apache CXF generated SE (CXF code gen Maven2 plugin):
>>>
>>> public DeployUnit deploy(String name, Package package1) {
>>> Base64Binary zip = package1.getZip();
>>> System.out.println("Base 64 ==> " + new
>>> String(zip.getValue()));
>>> DeployUnit deployUnit = new DeployUnit();
>>> deployUnit.setName(name);
>>> return deployUnit;
>>> }
>>>
>>> The result was:
>>>
>>> karaf@root> Base 64 ==> Lukasz Budnik test // output of
>>> System.out.println("Base 64 ==> ...);
>>>
>>> and exception from log:display:
>>>
>>> 17:45:35,624 | WARN | -cxf-se-thread-6 | PhaseInterceptorChain
>>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>>> {http://www.apache.org/
>>>
>>> ode/deployapi}DeploymentServiceImpl#{http://www.apache.org/ode/deployapi
>>> }deploy
>>> has thrown exception, unwinding now
>>> java.lang.NullPointerException
>>> at
>>> org
>>> .apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:
>>> 291)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .binding
>>> .soap
>>> .interceptor
>>> .RPCOutInterceptor.addOperationNode(RPCOutInterceptor.java:120)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .binding
>>> .soap
>>> .interceptor
>>> .RPCOutInterceptor.handleMessage(RPCOutInterceptor.java:65)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .interceptor
>>> .OutgoingChainInterceptor
>>> .handleMessage(OutgoingChainInterceptor.java:76)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport
>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>>> 156)
>>> at
>>> org
>>> .apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
>>> 432)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>> 581)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common
>>> .AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
>>> at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle
>>> $2.run(AsyncBaseLifeCycle.java:347)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor
>>> $Worker.runTask(ThreadPoolExecutor.java:885)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor
>>> $Worker.run(ThreadPoolExecutor.java:907)
>>> at java.lang.Thread.run(Thread.java:619)
>>> 17:45:35,640 | ERROR | -cxf-se-thread-6 | JBIDestinationOutputStream
>>> | t.jbi.JBIDestinationOutputStream 146 | error sending Out
>>> message
>>> java.lang.NullPointerException
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport
>>> .jbi
>>> .JBIDestinationOutputStream
>>> .commitOutputMessage(JBIDestinationOutputStream.java:99)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport
>>> .jbi
>>> .JBIDestinationOutputStream
>>> .doClose(JBIDestinationOutputStream.java:71)
>>> at
>>> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:
>>> 185)
>>> at
>>> org
>>> .apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>> at
>>> org.apache.cxf.interceptor.MessageSenderInterceptor
>>> $
>>> MessageSenderEndingInterceptor
>>> .handleMessage(MessageSenderInterceptor.java:62)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .interceptor
>>> .AbstractFaultChainInitiatorObserver
>>> .onMessage(AbstractFaultChainInitiatorObserver.java:96)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:292)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .interceptor
>>> .OutgoingChainInterceptor
>>> .handleMessage(OutgoingChainInterceptor.java:76)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase
>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport
>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>>> 156)
>>> at
>>> org
>>> .apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
>>> 432)
>>>
>>> Is it something wrong with the Apache ODE deploy.wsdl file?
>>>
>>> thanks,
>>> Łukasz
>>>
>>> On 25 June 2010 16:26, Freeman Fang <fr...@gmail.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> What's the smx version you are using?
>>>> What's the exception you get now?
>>>>
>>>> Are you sure the message you send to cxf bc consumer is exactly
>>>> same as I
>>>> post here?
>>>>
>>>> You can add LoggingInInterceptor for cxf bc conusmer endpoint to
>>>> print
>>>> out
>>>> the message received.
>>>>
>>>> Freeman
>>>> On 2010-6-25, at 下午9:56, Łukasz Budnik wrote:
>>>>
>>>>> Hi Freeman,
>>>>>
>>>>> The SOAP request was based on one of the Apache ODE Test and was
>>>>> generated by ODE ServiceClientUtil class. The whole
>>>>> http://nuntius.eti.pg.gda.pl system uses it that way and it
>>>>> works :)
>>>>>
>>>>> OK, but I changed the namespace to http://www.apache.org/ode/deployapi
>>>>> and I still get the very same error.
>>>>>
>>>>> Any other ideas?
>>>>>
>>>>> thanks,
>>>>> Łukasz
>>>>>
>>>>> On 25 June 2010 05:40, Freeman Fang <fr...@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> Well, the request message should be
>>>>>>
>>>>>> <soapenv:Envelope
>>>>>>
>>>>>>
>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/
>>>>>> envelope/"><soapenv:Body><pmapi:listDeployedPackages
>>>>>>
>>>>>>
>>>>>> xmlns:pmapi="http://www.apache.org/ode/deployapi"></
>>>>>> pmapi:listDeployedPackages></soapenv:Body></soapenv:Envelope>
>>>>>>
>>>>>> according to your wsdl.
>>>>>>
>>>>>> You are using wrong namespace, which cause can't find
>>>>>> BindingOperationInfo,
>>>>>> this is the root reason for that exception.
>>>>>>
>>>>>> Freeman
>>>>>> On 2010-6-24, at 下午2:01, Łukasz Budnik wrote:
>>>>>>
>>>>>>> Hi Freeman,
>>>>>>>
>>>>>>> OK. So deploy.wsdl, pmapi.xsd, and xmlmime.xsd are taken from
>>>>>>> Apache
>>>>>>> ODE war distribution (all attached).
>>>>>>>
>>>>>>> The deploy SOAP message would be too large to copy and paste
>>>>>>> (as it
>>>>>>> contains a base64 zip archive), but here is a SOAP message for a
>>>>>>> listDeployedPackages operation:
>>>>>>>
>>>>>>> <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/
>>>>>>> envelope/"><soapenv:Body><pmapi:listDeployedPackages
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> xmlns:pmapi="http://www.apache.org/ode/pmapi"></
>>>>>>> pmapi:listDeployedPackages></soapenv:Body></soapenv:Envelope>
>>>>>>>
>>>>>>> It gives me MEP not found and NPE.
>>>>>>>
>>>>>>> thanks,
>>>>>>> Łukasz
>>>>>>>
>>>>>>> On 24 June 2010 04:24, Freeman Fang <fr...@gmail.com>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Seems the exception is caused by can't extract
>>>>>>>> BindingOperationInfo
>>>>>>>> from
>>>>>>>> incoming soap message according to the wsdl.
>>>>>>>>
>>>>>>>> What's your wsdl and incoming soap message looks like?
>>>>>>>>
>>>>>>>> If you can append a simple testcase, which I can build and
>>>>>>>> deploy,
>>>>>>>> that
>>>>>>>> would be more helpful.
>>>>>>>>
>>>>>>>> Freeman
>>>>>>>> On 2010-6-23, at 下午10:59, Łukasz Budnik wrote:
>>>>>>>>
>>>>>>>>> Hi SM users,
>>>>>>>>>
>>>>>>>>> The system I'm developing uses Apache ODE war distribution.
>>>>>>>>> I'm
>>>>>>>>> investigating a possibility of moving to Apache ODE JBI
>>>>>>>>> distribution.
>>>>>>>>>
>>>>>>>>> In my system all operations on Apache ODE are performed
>>>>>>>>> using Web
>>>>>>>>> Services.
>>>>>>>>>
>>>>>>>>> I'm able to write CXF BC components for Process and Instance
>>>>>>>>> Management Services and they work like a charm.
>>>>>>>>>
>>>>>>>>> Unfortunately there is no DeploymentService provided. I
>>>>>>>>> decided to
>>>>>>>>> write a simple mock for it.
>>>>>>>>>
>>>>>>>>> I took deploy.wsdl from ODE war distribution and created a
>>>>>>>>> CXF BC
>>>>>>>>> for
>>>>>>>>> it. I also wrote a simple CXF SE. I wanted to test it using
>>>>>>>>> soapUI,
>>>>>>>>> but failed.
>>>>>>>>>
>>>>>>>>> I'm getting these errors:
>>>>>>>>>
>>>>>>>>> 16:57:09,359 | WARN | 2@qtp-18353341-0 |
>>>>>>>>> PhaseInterceptorChain
>>>>>>>>> | ache.cxf.common.logging.LogUtils 361 | Interceptor for
>>>>>>>>> {http://www.apache.org/
>>>>>>>>> ode/deployapi}DeploymentService has thrown exception,
>>>>>>>>> unwinding now
>>>>>>>>> java.lang.NullPointerException: MEP not found
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .cxfbc
>>>>>>>>> .interceptors
>>>>>>>>> .JbiInInterceptor.createExchange(JbiInInterceptor.java:117)
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .cxfbc
>>>>>>>>> .interceptors
>>>>>>>>> .JbiInInterceptor.handleMessage(JbiInInterceptor.java:63)
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .cxf
>>>>>>>>> .phase
>>>>>>>>> .PhaseInterceptorChain
>>>>>>>>> .doIntercept(PhaseInterceptorChain.java:243)
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .cxf
>>>>>>>>> .transport
>>>>>>>>> .ChainInitiationObserver
>>>>>>>>> .onMessage(ChainInitiationObserver.java:109)
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.servicemix.cxfbc.CxfBcConsumer
>>>>>>>>> $JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:675)
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .cxf
>>>>>>>>> .transport
>>>>>>>>> .http_jetty
>>>>>>>>> .JettyHTTPDestination
>>>>>>>>> .serviceRequest(JettyHTTPDestination.java:312)
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .cxf
>>>>>>>>> .transport
>>>>>>>>> .http_jetty
>>>>>>>>> .JettyHTTPDestination.doService(JettyHTTPDestination.java:276)
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .cxf
>>>>>>>>> .transport
>>>>>>>>> .http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org
>>>>>>>>> .mortbay
>>>>>>>>> .jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org
>>>>>>>>> .mortbay
>>>>>>>>> .jetty
>>>>>>>>> .handler
>>>>>>>>> .ContextHandlerCollection
>>>>>>>>> .handle(ContextHandlerCollection.java:230)
>>>>>>>>>
>>>>>>>>> I looked up the source code, but I cannot tell much.
>>>>>>>>>
>>>>>>>>> any one ever experienced this kind of problem?
>>>>>>>>>
>>>>>>>>> thanks,
>>>>>>>>> Łukasz
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Freeman Fang
>>>>>>>> ------------------------
>>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>>
>>>>>>>>
>>>>>>> <deploy.wsdl><pmapi.xsd><xmlmime.xsd>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Freeman Fang
>>>>>> ------------------------
>>>>>> Open Source SOA: http://fusesource.com
>>>>>>
>>>>>>
>>>>
>>>>
>>>> --
>>>> Freeman Fang
>>>> ------------------------
>>>> Open Source SOA: http://fusesource.com
>>>>
>>>>
>>
>>
>> --
>> Freeman Fang
>> ------------------------
>> Open Source SOA: http://fusesource.com
>>
>>
> <apache-ode-deployapi-sm4.zip>
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com