[ 
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.

Reply via email to