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

Andreas Gudian commented on CXF-3413:
-------------------------------------

The server side is a webMethods 7.x integration server.

I had to anonymize the WSDL a bit, the real one had some more operations, types 
and elements, and different namespaces, service name and port name.
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/"; 
xmlns:tns="http://www.xxx.yy/zzz"; 
xmlns:xmime="http://www.w3.org/2005/05/xmlmime"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsd1="http://www.xxx.yy/zzz/types/"; name="zzz.wsdl" 
targetNamespace="http://www.xxx.yy/zzz";>
  <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="http://www.xxx.yy/zzz/types/";>
      <element name="pdfList">
        <complexType>
          <sequence>
            <element maxOccurs="unbounded" ref="xsd1:pdf"/>
          </sequence>
        </complexType>
      </element>
      <element name="pdf">
        <complexType>
          <sequence>
            <element name="pdfName" type="xsd:string"/>
            <element xmlns:xmime="http://www.w3.org/2005/05/xmlmime"; 
name="pdfPayload" type="xsd:base64Binary" 
xmime:expectedContentTypes="application/octet-stream"/>
          </sequence>
        </complexType>
      </element>
      <element name="xmlFilename" type="xsd:string" />
      <element name="transactionID" type="xsd:string"/>
      <element name="statusCode" type="xsd:string" />
      <element name="statusMessage" type="xsd:string"/>

      <xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="sendData">
        <xsd:complexType>
          <xsd:sequence>
            <!-- ... -->
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      
      <xsd:complexType xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
name="authenticationHeaderType">
        <xsd:sequence>
          <!-- ... -->
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
name="authentication" nillable="true" type="xsd1:authenticationHeaderType"/>
      
      <xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
name="GeneratePreviewResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element ref="xsd1:statusCode"/>
            <xsd:element ref="xsd1:statusMessage"/>
            <xsd:element ref="xsd1:transactionID"/>
            <xsd:element ref="xsd1:pdfList"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </schema>
  </types>
  <message name="generatePreviewResponse">
    <part name="statusCode" element="xsd1:GeneratePreviewResponse"/>
  </message>
  <message name="xmlRequest">
    <part name="xmlData" element="xsd1:sendData"/>
  </message>
  <message name="request_Headers">
    <part name="authentication" element="xsd1:authentication"/>
  </message>

  <portType name="IPortType">
    <operation name="generatePreview">
      <documentation>...</documentation>

      <input name="xmlRequest" message="tns:xmlRequest"/>
      <output name="pdfResponse" message="tns:generatePreviewResponse"/>
    </operation>
    
  </portType>
  <binding name="ISOAPBinding" type="tns:IPortType">
    <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsp:PolicyReference 
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"; URI="#wsmtom_policy" 
required="true"/>
    <operation name="generatePreview">
      <soap:operation soapAction="attachment"/>
      <input name="xmlRequest">

        <soap:header message="tns:request_Headers" part="authentication" 
use="literal"/>
        <soap:body use="literal"/>
      </input>
      <output name="pdfResponse">
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="iService">
    <port name="ISoapBindingPort" binding="tns:ISOAPBinding">
      <soap:address location="http://xxx/yyy"/>
    </port>
  </service>
  <wsp:Policy 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
 xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"; 
wsu:Id="wsmtom_policy">
    <wsoma:OptimizedMimeSerialization 
xmlns:wsoma="http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization"/>
  </wsp:Policy>
</definitions>
{code}

Please note that the response is not valid as far as the schema is concerned 
(two mandatory elements are missing). However, I expected a validation 
exception from JAXB for this (validation is turned on in my client).


> IndexOutOfBoundsException in DocLiteralInInterceptor
> ----------------------------------------------------
>
>                 Key: CXF-3413
>                 URL: https://issues.apache.org/jira/browse/CXF-3413
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.3.3
>            Reporter: Andreas Gudian
>
> I am receiving the following response from a web service that I call using 
> CXF 2.3.3:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"; 
> xmlns:xml="http://www.w3.org/XML/1998/namespace"; 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
> <SOAP-ENV:Header xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"; 
> xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding";></SOAP-ENV:Header><SOAP-ENV:Body>
> <xsd1:statusCode 
> xmlns:xsd1="http://www.xxx.yy/zzz/types/";>-1</xsd1:statusCode>
>   <xsd1:statusMessage xmlns:xsd1="http://www.xxx.yy/zzz/types/";>Some Status 
> Message</xsd1:statusMessage>
>   <xsd1:pdfList xmlns:xsd1="http://www.xxx.yy/zzz/types/";></xsd1:pdfList>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> {code}
> This results in the following exception:
> {code}
> java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
>       at java.util.ArrayList.RangeCheck(ArrayList.java:547)
>       at java.util.ArrayList.get(ArrayList.java:322)
>       at 
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:188)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
>       at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:755)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2335)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2193)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2037)
>       at 
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)
>       at 
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:188)
>       at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>       at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:697)
>       at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
>       at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>       at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
>       at $Proxy43.myWebserviceOperation(Unknown Source)
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to