[ 
https://issues.apache.org/jira/browse/CXF-2539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779112#action_12779112
 ] 

Holger Delfs edited comment on CXF-2539 at 11/17/09 8:37 PM:
-------------------------------------------------------------

You were right. The problem is already fixed and doesn't occur any more with a 
current 2.2.5-SNAPSHOT version.

      was (Author: hdelfs):
    You were right. The problem is already fixed doesn't occur any more with a 
current 2.2.5-SNAPSHOT version.
  
> 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
>             Fix For: 2.2.5
>
>
> 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