You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Holger Delfs (JIRA)" <ji...@apache.org> on 2009/11/17 21:36:39 UTC

[jira] Resolved: (CXF-2539) Service invocation with parameter null for wrapped style with implicit SOAP header definition

     [ https://issues.apache.org/jira/browse/CXF-2539?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Holger Delfs resolved CXF-2539.
-------------------------------

       Resolution: Duplicate
    Fix Version/s: 2.2.5

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.