[
https://issues.apache.org/jira/browse/CXF-6523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robby Pelssers updated CXF-6523:
--------------------------------
Attachment: workorders.wsdl
> org.apache.cxf.interceptor.Fault: wrong number of arguments (due to explicit
> soap header)
> -----------------------------------------------------------------------------------------
>
> Key: CXF-6523
> URL: https://issues.apache.org/jira/browse/CXF-6523
> Project: CXF
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.7.11, 3.1.2
> Reporter: Robby Pelssers
> Priority: Critical
> Attachments: workorders.wsdl
>
>
> An explicit Soap header is causing issues due to having the same QName as the
> wrapped Soap body
> <wsdl:message name="ARAuthenticate">
> <wsdl:part element="s0:AuthenticationInfo" name="parameters"/>
> </wsdl:message>
> <wsdl:message name="GetWorkOrdersListSoapIn">
> <wsdl:part element="s0:GetWorkOrdersList" name="parameters"/>
> </wsdl:message>
> This results in a MessageInfo object with 1 messagePart and 1 outOfbandPart,
> both having the same QName.
> Problem is that in the WrapperClassInInterceptor we loop over
> messageInfo.getMessageParts which actually returns the combined list of
> messageParts and outOfBandParts.
> Now for the header part with QName "{urn:VF_WorkOrders}parameters" we do a
> lookup wrappedMessageInfo.getMessagePart(part.getName()) which retrieves the
> wrapped input messagePart.
> for (MessagePartInfo part : messageInfo.getMessageParts()) {
> if
> (Boolean.TRUE.equals(part.getProperty(ReflectionServiceFactoryBean.HEADER))) {
> MessagePartInfo mpi =
> wrappedMessageInfo.getMessagePart(part.getName());
> if (mpi != null && lst.hasValue(mpi)) {
> count++;
> newParams.put(part, lst.get(mpi));
> } else if (mpi == null || mpi.getTypeClass() == null)
> {
> //header, but not mapped to a param on the method
> if (removes == null) {
> removes = new ArrayList<Integer>();
> }
> removes.add(part.getIndex());
> }
> } else {
> ++count;
> }
> }
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)