This is exactly what TransformFeature has been created for:
http://cxf.apache.org/docs/transformationfeature.html
Setting an inTransformElements property like this:
{http://woof.test.vue.com/}* : {http://test.vue.com/}*
(have all elements qualified with http://woof.test.vue.com/ qualified
with http://test.vue.com/ instead)
should do the trick
Disabling the validation can be a simpler option - however it really
depends on a particular case, ex, some control may need to be
exercised in order to avoid unexpected requests/responses
Cheers, Sergey
On Sat, Jun 4, 2011 at 12:50 PM, Shane Frueh <[email protected]> wrote:
>
> This is the exception I'm getting:
>
> Also, programatically, I tried Boolean.FALSE and "false" as the value for
> "set-jaxb-validation-event-handler".
>
> 2011-06-03 14.30.05.406:WARN :Interceptor for
> {http://test.vue.com/}TestService#{http://test.vue.com/}getAppointment has
> thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unexpected wrapper element
> {http://woof.test.vue.com/}getAppointment found. Expected
> {http://test.vue.com/}getAppointment.
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:106)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:311)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:280)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:936)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:873)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> at org.eclipse.jetty.server.Server.handle(Server.java:346)
> at
> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:581)
> at
> org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1057)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:807)
> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:214)
> at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:526)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:41)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:528)
> at java.lang.Thread.run(Thread.java:662)
>
>> From: [email protected]
>> To: [email protected]
>> Subject: jaxb validation
>> Date: Fri, 3 Jun 2011 20:30:40 -0500
>>
>>
>> Upgrading from CXF 2.2.2 to 2.3.4. We have some client software that's
>> sending the wrong namespace in a request and so we're getting the
>> "Unexpected wrapper element" fault. I find plenty of discussion in previous
>> posts suggesting to:
>>
>> set-jaxb-validation-event-handler to "false"
>>
>> Though I've tried a couple of different ways and can't seem to make it work.
>>
>> I've tried compiling it into the service as an annotation.
>>
>> @EndpointProperties({
>> @EndpointProperty(key = "set-jaxb-validation-event-handler",
>> value="false")
>> })
>>
>> I've also tried programatically.
>>
>> final JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean();
>> final Map<String, Object> properties = svrFactory.getProperties(true);
>> properties.put("set-jaxb-validation-event-handler", Boolean.FALSE);
>>
>>
>>
>
--
Sergey Beryozkin
Application Integration Division of Talend
http://sberyozkin.blogspot.com