The bean configuration that we have done in applicationContext.xml is :
The WSDL file URL looks like :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>
When I am trying to deploy the application I am getting the below error :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>
I have attcahed the error log.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
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; } }


Reply With Quote
