[
https://issues.apache.org/jira/browse/CXF-2539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12778457#action_12778457
]
Daniel Kulp commented on CXF-2539:
----------------------------------
Any chance you could test your test case with 2.2.4 and the 2.2.5 stuff that is
being voted on now:
http://old.nabble.com/-VOTE--Release-CXF-2.2.5-to26355505.html
There are a bunch of related bugs fixed in 2.2.4 and a couple more fixed in
2.2.5 so this is likely already fixed:
[CXF-2451] Fix an issue with implicit headers and no-arg methods causing
[CXF-2478] Fix problem of wrong part being removed
[CXF-2498] Wrong parameter number exception with explicit soap headers
I BELIEVE CXF-2478 is the fix for this issue.
> Service invocation with parameter null for wrapped style with implicit SOAP
> header definition
> ---------------------------------------------------------------------------------------------
>
> Key: CXF-2539
> URL: https://issues.apache.org/jira/browse/CXF-2539
> Project: CXF
> Issue Type: Bug
> Components: JAX-WS Runtime
> Affects Versions: 2.2.3
> Reporter: Holger Delfs
>
> In my WSDL a security SOAP header is defined as a separate message ("implicit
> header definition"), which is handled by a WSS4JInInterceptor. But when the
> service implementation is invoked, one of the other parameters has been
> removed and thus causes a NullPointerException.
> Through debugging I found that in this case the WrapperClassInInterceptor
> tries to remove the additional header value from the parameters of the
> MessageContentsList by identifying the corresponding MessagePartInfo. But
> since the indexing in messageInfo and wrappedMessageInfo is naturally
> different, the part index from wrappedMessageInfo (line 140) cannot be used
> for removing a value from the newParams list (line 155). Thus a "regular"
> parameter value gets removed.
> A work around would probably be to use an explicit security parameter with
> @WebParam(header = true), as generated from -exsh true flag to wsdl2java, but
> I don't like to have this extra parameter in my service interface (as with
> @WebParam(header = true) from -exsh true flag to wsdl2java), since security
> information is rather an aspect than business parameter.
> Here an excerpt from my WSDL with the implicit header definition:
> <wsdl:binding name="TravelExpensesServiceSoapBinding"
> type="tr:TravelExpensesWebService">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="submitTravel">
> <soap:operation
> soapAction="http://travel.sdm.de/travelExpenses/submitTravel"/>
> <wsdl:input name="submitTravelRequest">
> <soap:header message="tr:securityHeader"
> part="security" wsdl:required="true" use="literal"/>
> <soap:body parts="submitTravel" use="literal"/>
> </wsdl:input>
> <wsdl:output name="submitTravelResponse">
> <soap:body parts="submitTravelResponse"
> use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.