Java first with unqualified/unannotated JAXB objects don't generate proper soap
messages....
--------------------------------------------------------------------------------------------
Key: CXF-802
URL: https://issues.apache.org/jira/browse/CXF-802
Project: CXF
Issue Type: Bug
Components: Core, JAX-WS Runtime, JAXB Databinding, Soap Binding
Affects Versions: 2.0
Reporter: Daniel Kulp
Assignee: Daniel Kulp
Fix For: 2.0.1
In a java first scenario, if the service interface/impl is set for the default
of wrapped doc/lit and returns a simple pojo bean with no annotations, (thus no
namespace set so defaults to unqualified), AND the user does not run wsdl2java
with -s to generate the wrapper beans, the service doesn't work.
The resulting soap message is not correct. The WrappedOutInterceptor sets the
default namespace to the namespace of the wrapper type. However, the jaxb
databinding does not "unset" that when it writes. Thus, you get something
like:
<getJerkResponse xmlns="http://server.token.example.com/endpoint">
<ns2:result xmlns:ns2="http://server.token.example.com/endpoint">
<jerkName>somebody</jerkName>
</ns2:result>
</getJerkResponse>
The "jerkName" element ends up qualified in the parser
Next problem. If I fixed the WrappedOut to qualify the getJerkReponse
element, you get:
<ns1:getJerkResponse xmlns:ns1="http://server.token.example.com/endpoint">
<ns2:result xmlns:ns2="http://server.token.example.com/endpoint">
<jerkName>somebody</jerkName>
</ns2:result>
</ns1:getJerkResponse>
which also is incorrect. The "result" element should be unqualified. The
part names in the unwrapped operation should have null namespaces if the schema
is unqualified. Thus, the JAXBElement that is used to write the parts would
be properly unqualified.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.