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