Uploaded image for project: 'CXF Distributed OSGi'
  1. CXF Distributed OSGi
  2. DOSGI-209

when bundles registers two WS with different SoapBinding Style Document/RPC then one of the STYLE is not as expected

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.4.0, 1.5.0
    • Fix Version/s: 2.0.0
    • Component/s: common
    • Labels:
      None
    • Environment:

      Java 1.7, DOSGI-1.5.0, Jetty 8.1.13, win32

    • Estimated Complexity:
      Unknown

      Description

      After migrating from 1.3.1 to 1.5.0, i see strange behavior with the SOAPBINDING Style [DOCUMENT/RPC],

      Sample Interface:

      Interface
      @WebService(name="iDocumentStyleBindingServiceType", portName="iDocumentStyleBindingServicePort", serviceName="IDocumentStyleBindingServiceService", targetNamespace=IDocumentStyleBindingService.TNS)
      @SOAPBinding(style=Style.DOCUMENT, use=Use.LITERAL)
      public interface IDocumentStyleBindingService {
      	 public static final String TNS = "http://www.temp.uri/temp/iDocumentStyleBindingServiceService";
      	 
      	    @WebResult(name = "IDocumentStyleBindingServiceResult", targetNamespace = IDocumentStyleBindingService.TNS, partName = "IDocumentStyleBindingServiceResult")
      	    @Action(input = "http://www.temp.uri/temp/iDocumentStyleBindingServiceService/IDocumentStyleBindingService", output = "http://www.temp.uri/temp/iDocumentStyleBindingServiceService/IDocumentStyleBindingServiceResponse")
      	    @WebMethod(operationName = "GetLetterFormURIs", action = "http://www.temp.uri/temp/iDocumentStyleBindingServiceService/IDocumentStyleBindingService")
      	    public String IDocumentStyleBindingService();
      }
      
      <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" enabled="true" immediate="true" name="com.temp.uri.documentstylebindingservice">
         <implementation class="com.temp.uri.DocumentStyleBindingService"/>
          <service>
            <provide interface="com.temp.uri.IDocumentStyleBindingService"/>
         </service>
         <property name="service.exported.interfaces" type="String" value="com.temp.uri.IDocumentStyleBindingService"/>
         <property name="service.exported.configs" type="String" value="org.apache.cxf.ws"/>
         <property name="org.apache.cxf.ws.frontend" type="String" value="jaxws" />
         <property name="org.apache.cxf.ws.databinding" type="String" value="jaxb" />
         <property name="org.apache.cxf.ws.httpservice.context" type="String" value="/iDocumentStyleBindingService"/>
         <property name="org.apache.cxf.ws.address" type="String" value=""/>
      </scr:component>
      

      Generated WSDL with SOAP Binding style - RPC, should have been document.

      <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:tns="http://www.temp.uri/temp/iDocumentStyleBindingServiceService" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="IDocumentStyleBindingServiceService" targetNamespace="http://www.temp.uri/temp/iDocumentStyleBindingServiceService">
      <wsdl:types>
      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.temp.uri/temp/iDocumentStyleBindingServiceService" elementFormDefault="unqualified" targetNamespace="http://www.temp.uri/temp/iDocumentStyleBindingServiceService" version="1.0">
      <xs:element name="GetLetterFormURIs" type="tns:GetLetterFormURIs"/>
      <xs:element name="GetLetterFormURIsResponse" type="tns:GetLetterFormURIsResponse"/>
      <xs:complexType name="GetLetterFormURIs">
      <xs:sequence/>
      </xs:complexType>
      <xs:complexType name="GetLetterFormURIsResponse">
      <xs:sequence>
      <xs:element form="qualified" minOccurs="0" name="IDocumentStyleBindingServiceResult" type="xs:string"/>
      </xs:sequence>
      </xs:complexType>
      </xs:schema>
      </wsdl:types>
      <wsdl:message name="GetLetterFormURIsResponse">
      <wsdl:part element="tns:GetLetterFormURIsResponse" name="parameters"></wsdl:part>
      </wsdl:message>
      <wsdl:message name="GetLetterFormURIs">
      <wsdl:part element="tns:GetLetterFormURIs" name="parameters"></wsdl:part>
      </wsdl:message>
      <wsdl:portType name="iDocumentStyleBindingServiceType">
      <wsdl:operation name="GetLetterFormURIs">
      <wsdl:input message="tns:GetLetterFormURIs" name="GetLetterFormURIs" wsam:Action="http://www.temp.uri/temp/iDocumentStyleBindingServiceService/IDocumentStyleBindingService" wsaw:Action="http://www.temp.uri/temp/iDocumentStyleBindingServiceService/IDocumentStyleBindingService"></wsdl:input>
      <wsdl:output message="tns:GetLetterFormURIsResponse" name="GetLetterFormURIsResponse" wsam:Action="http://www.temp.uri/temp/iDocumentStyleBindingServiceService/IDocumentStyleBindingServiceResponse" wsaw:Action="http://www.temp.uri/temp/iDocumentStyleBindingServiceService/IDocumentStyleBindingServiceResponse"></wsdl:output>
      </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="IDocumentStyleBindingServiceServiceSoapBinding" type="tns:iDocumentStyleBindingServiceType">
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="GetLetterFormURIs">
      <soap:operation soapAction="http://www.temp.uri/temp/iDocumentStyleBindingServiceService/IDocumentStyleBindingService" style="rpc"/>
      <wsdl:input name="GetLetterFormURIs">
      <soap:body namespace="http://www.temp.uri/temp/iDocumentStyleBindingServiceService" use="literal"/>
      </wsdl:input>
      <wsdl:output name="GetLetterFormURIsResponse">
      <soap:body namespace="http://www.temp.uri/temp/iDocumentStyleBindingServiceService" use="literal"/>
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="IDocumentStyleBindingServiceService">
      <wsdl:port binding="tns:IDocumentStyleBindingServiceServiceSoapBinding" name="iDocumentStyleBindingServicePort">
      <soap:address location="http://localhost:15220/iDocumentStyleBindingService"/>
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
      

      Accessing the service results in following exception

      java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
      	at java.util.ArrayList.rangeCheck(ArrayList.java:604)
      	at java.util.ArrayList.get(ArrayList.java:382)
      	at org.apache.cxf.jaxws.interceptors.WrapperClassInInterceptor.handleMessage(WrapperClassInInterceptor.java:110)
      	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
      	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
      	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
      	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:218)
      	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:198)
      	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
      	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
      	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
      	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:163)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
      	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
      	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
      	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
      	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
      	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      	at org.eclipse.jetty.server.Server.handle(Server.java:370)
      	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
      	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
      	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
      	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
      	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
      	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
      	at java.lang.Thread.run(Thread.java:722)
      

        Attachments

          Activity

            People

            • Assignee:
              cschneider Christian Schneider
              Reporter:
              ranjeeth Ranjeeth
            • Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: