Announcement Announcement Module
Collapse
No announcement yet.
javax.xml.rpc.ServiceException: Error processing WSDL document Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • javax.xml.rpc.ServiceException: Error processing WSDL document

    The bean configuration that we have done in applicationContext.xml is :

    Code:
    <bean id="amsComergentWebService" class="com.lifetouch.oms.service.spring.AlwaysUseJaxRpcProxyFactoryBean">
        	<property name="serviceFactoryClass" value="org.apache.axis.client.ServiceFactory"/>
            <property name="wsdlDocumentUrl" value="${ams.web.service.url}"/>
            <property name="serviceInterface" value="com.lifetouch.ams.client.AMSComergentService"/>
            <property name="serviceName" value="GetAccountDetailsService"/>
            <property name="portName" value="GetAccountDetailsSoapBindingPort"/>
            <property name="namespaceUri" value="http://www.comergent.com/webservices/"/>
            <property name="lookupServiceOnStartup" value="true"/>
        </bean>
    The WSDL file URL looks like :

    Code:
     <?xml version="1.0" encoding="UTF-8" ?> 
    <s0:definitions name="AccountInterfaceDefinition" targetNamespace="http://www.comergent.com/webservices/" xmlns:s0="http://schemas.xmlsoap.org/wsdl/" xmlns:s1="http://www.comergent.com/webservices/" xmlns:s2="http://schemas.xmlsoap.org/wsdl/soap/">
      <s0:documentation>Exposes all Account related interfaces.</s0:documentation> 
    <s0:types>
    <xsd:schema elementFormDefault="qualified" targetNamespace="http://www.comergent.com/webservices/" xmlns:cmgt="http://www.comergent.com/webservices/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://www.comergent.com/webservices/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:include schemaLocation="http://qa-esb.lifetouch.net:80/GetAccountDetailsProxy?SCHEMA%2FAMSDefinitions%2FXMLSchema%2FdXML-AccountObjectDefinitions">
    <xsd:annotation>
      <xsd:documentation>Include the common User specific Comergent dXML definitions.</xsd:documentation> 
      </xsd:annotation>
      </xsd:include>
    <xsd:element name="GetAccountDetailsRequest">
    <xsd:annotation>
      <xsd:documentation>Request Object definition for getting a specific Account - the input parameter is PartnerKey-LID-PID.</xsd:documentation> 
      </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="MessageHeader" type="cmgt:MessageHeaderType" /> 
      <xsd:element name="RemoteUser" type="cmgt:RemoteUserType" /> 
      <xsd:element name="LTAccount" type="cmgt:GetAccountParams" /> 
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
    <xsd:element name="GetAccountDetailsRequestResponse">
    <xsd:annotation>
      <xsd:documentation>Response to the GetAccountDetailsRequest. Defines dXML specific Account object.</xsd:documentation> 
      </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="dXML" type="cmgt:dXMLAccountDetailsResponseType" /> 
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
    <!--  web-services for update demographics data for account 
      --> 
     **************************
    <s0:operation name="GetAccountDetailsRequest">
      <s2:operation soapAction="http://dev.ams.lifetouch.net/Sterling/msg/ams/soap" /> 
    <s0:input>
      <s2:body parts="parameterIn" use="literal" /> 
      </s0:input>
    <s0:output>
      <s2:body parts="parameterOut" use="literal" /> 
      </s0:output>
    <s0:fault name="OperationFailed">
      <s2:fault name="OperationFailed" use="literal" /> 
      </s0:fault>
      </s0:operation>
      </s0:binding>
    <s0:binding name="UpdateDemographicsDetailsSoapBinding" type="s1:UpdateDemographicsDetailsPortType">
      <s2:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
    <s0:operation name="UpdateDemographicsRequest">
      <s2:operation soapAction="http://localhost:8081/Sterling/msg/matrix/soap" /> 
    <s0:input>
      <s2:body parts="parameterIn" use="literal" /> 
      </s0:input>
    <s0:output>
      <s2:body parts="parameterOut" use="literal" /> 
      </s0:output>
    <s0:fault name="OperationFailed">
      <s2:fault name="OperationFailed" use="literal" /> 
      </s0:fault>
      </s0:operation>
      </s0:binding>
    <s0:binding name="GetAccountListSoapBinding" type="s1:GetAccountListPortType">
      <s2:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
    <s0:operation name="GetAccountListRequest">
      <s2:operation soapAction="http://dev.ams.lifetouch.net/Sterling/msg/ams/soap" /> 
    <s0:input>
      <s2:body parts="parameterIn" use="literal" /> 
      </s0:input>
    <s0:output>
      <s2:body parts="parameterOut" use="literal" /> 
      </s0:output>
    <s0:fault name="OperationFailed">
      <s2:fault name="OperationFailed" use="literal" /> 
      </s0:fault>
      </s0:operation>
      </s0:binding>
    <s0:service name="GetAccountDetailsService">
    <s0:port binding="s1:GetAccountDetailsSoapBinding" name="GetAccountDetailsSoapBindingPort">
      <s2:address location="http://qcmnesb03:9601/GetAccountDetailsProxy" /> 
      </s0:port>
      </s0:service>
      </s0:definitions>
    When I am trying to deploy the application I am getting the below error :
    Code:
    ERROR 2011-04-28 17:34:41,556 [] [] [] [] [ContextLoader] - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'amsComergentWebService' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is javax.xml.rpc.ServiceException: Error processing WSDL document:  
    WSDLException (at /s0:definitions/s0:types/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve schema referenced at 'http://qa-esb.lifetouch.net:80/GetAccountDetailsProxy?SCHEMA%2FAMSDefinitions%2FXMLSchema%2FdXML-AccountObjectDefinitions', relative to 'http://qa-esb.lifetouch.net/GetAccountDetailsProxy?wsdl'.: no content-type: java.net.UnknownServiceException: no content-type
    I have attcahed the error log.

    Please advise on whether some extra configuration is required for the JaxRpcPortProxyFactoryBean in order to handle <xsd:include> in the WSDL?

    The AlwaysUseJaxRpcProxyFactoryBean looks like :

    Code:
    public class AlwaysUseJaxRpcProxyFactoryBean extends JaxRpcPortProxyFactoryBean {
    
        @Override
        protected boolean alwaysUseJaxRpcCall() {
            return true;
        }
    }
Working...
X