You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by ssheth <ss...@ais.ucla.edu> on 2010/06/19 02:23:54 UTC

Namespace Transformation

I am using ServiceMix 4.2.

I am using Service Adapter pattern to transform a SOAP request and namespace
before invoking the actual webservice.

Here are my components:
Client->CXFBC:Consumer->Camel Route to Transform the request and change the
namespace->CXBC Provider-> WebService

CXBC:Consumer is using slightly different wsdl with less number of elements
and uses a different namespace

My xslt file is transforming the request correctly including changing the
name space before forwarding the jbi wrapped request to CXFBC provider. I
verified my XSLT using XML spy.

Here is the error I am getting:
Error processing exchange
org.apache.servicemix.jbi.runtime.impl.InOutImpl@a92a5
java.lang.NullPointerException
      at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:202)
      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:886)
      at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

16:54:00,524 | WARN  | lidationService/ | PhaseInterceptorChain            |
ache.cxf.common.logging.LogUtils  361 | Interceptor for
{http://ws.ais.ucla.edu}MyValidationService#{http://ws.ais.ucla.edu/}Validate
has thrown exception, unwinding now

org.apache.servicemix.cxfbc.interceptors.JbiFault: Fault occured
	at
org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:830)
	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:678)
	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)
	at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:322)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
-- 
View this message in context: http://servicemix.396122.n5.nabble.com/Namespace-Transformation-tp510191p510191.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Namespace Transformation

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

Seems this error is caused by the input message for cxf bc provider  
isn't the one what cxf bc provider expected.

Both cxf bc provider and consumer build servicemodel from wsdl, so the  
input message for those endpoints must exactly match the wsdl schema,  
you should be very careful when you do some transform to the onwire  
message.

Freeman
On 2010-6-19, at 上午8:23, ssheth wrote:

>
> I am using ServiceMix 4.2.
>
> I am using Service Adapter pattern to transform a SOAP request and  
> namespace
> before invoking the actual webservice.
>
> Here are my components:
> Client->CXFBC:Consumer->Camel Route to Transform the request and  
> change the
> namespace->CXBC Provider-> WebService
>
> CXBC:Consumer is using slightly different wsdl with less number of  
> elements
> and uses a different namespace
>
> My xslt file is transforming the request correctly including  
> changing the
> name space before forwarding the jbi wrapped request to CXFBC  
> provider. I
> verified my XSLT using XML spy.
>
> Here is the error I am getting:
> Error processing exchange
> org.apache.servicemix.jbi.runtime.impl.InOutImpl@a92a5
> java.lang.NullPointerException
>      at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java: 
> 202)
>      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:886)
>      at
> java.util.concurrent.ThreadPoolExecutor 
> $Worker.run(ThreadPoolExecutor.java:908)
>
> 16:54:00,524 | WARN  | lidationService/ |  
> PhaseInterceptorChain            |
> ache.cxf.common.logging.LogUtils  361 | Interceptor for
> {http://ws.ais.ucla.edu}MyValidationService#{http:// 
> ws.ais.ucla.edu/}Validate
> has thrown exception, unwinding now
>
> org.apache.servicemix.cxfbc.interceptors.JbiFault: Fault occured
> 	at
> org.apache.servicemix.cxfbc.CxfBcConsumer 
> $JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:830)
> 	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:678)
> 	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)
> 	at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
> 	at  
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: 
> 152)
> 	at org.mortbay.jetty.Server.handle(Server.java:322)
> 	at  
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 
> 542)
> 	at
> org.mortbay.jetty.HttpConnection 
> $RequestHandler.content(HttpConnection.java:938)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> 	at
> org 
> .mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java: 
> 409)
> 	at
> org.mortbay.thread.QueuedThreadPool 
> $PoolThread.run(QueuedThreadPool.java:582)
> -- 
> View this message in context: http://servicemix.396122.n5.nabble.com/Namespace-Transformation-tp510191p510191.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.


-- 
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com