2011-06-17 19 views
5

birisi yardımcı olabilir gerçekten takdir hala 3 gündür çözülmez Bu sorun, içinde bulunan aşağıdaki tüm kodu edilemez.XSD şema konumu burada, WSDL dosyası

Sorun: Ben sert diskten SoapUI için (benim Tutulma proje dizinde) wsdl dosyasını gösterirseniz bu web hizmeti iyi çalışıyor. Ben url vermek Ama eğer talep şema dosyasını bulamıyor: Bu doğru wsdl açığa ama şemayı bulamıyorum

http://localhost:8080/mwp/mws/mwsid.wsdl 

, ben SoapUI gelen hatayı alıyorum:

HATA: yüklenemedi url [http: // localhost: 8080/MWP/mws/Request.xsd]

bu bahar yapılandırma dosyasını

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sws="http://www.springframework.org/schema/web-services" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:aop="http://www.springframework.org/schema/aop" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/web-services http://www.springframework.org/schema/web-services/web-services-2.0.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> 

<description> 
</description> 

<bean id="webServicePluginDescriptor" 
    class="com.mywebsite.ws.configuration.mtchWebservicePluginDescriptor" /> 

<bean id="payloadMapping" 
     class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping"> 
    <property name="defaultEndpoint" ref="inferenceEndPoint" /> 
    <property name="interceptors"> 
     <list> 
      <ref local="validatingInterceptor" /> 
      <ref local="payLoadInterceptor" /> 
     </list> 
    </property> 
</bean> 

<bean id="payLoadInterceptor" 
    class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor" /> 

<bean id="validatingInterceptor" 
    class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor"> 

    <property name="schema" 
     value="classpath:/wsdl/Request.xsd" /> 
    <property name="validateRequest" value="true" /> 
    <property name="validateResponse" value="false" /> 
</bean> 

<bean id="PropertyResource" class="com.mywebsite.ws.im.PropertyResource"> 
    <property name="resource" 
     value="/WEB-INF/client-specific/InferenceMachine.properties" /> 
</bean> 

<bean id="inferenceEndPoint" class="com.mywebsite.ws.web.InferenceEndPoint"> 
    <property name="messageWebService" ref="messageWebService" /> 
</bean> 

<bean id="messageWebService" class="com.mywebsite.ws.service.MessageWebService" 
    scope="request"> 
    <aop:scoped-proxy /> 
    <property name="inferenceService" ref="inferenceService" /> 
</bean> 

<bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema"> 
    <property name="xsd" value="classpath:/wsdl/Request.xsd" /> 
</bean> 

<bean id="mwsid" 
    class="org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition"> 
    <constructor-arg value="classpath:/wsdl/mtchwsdl.wsdl" /> 
</bean> 

<bean id="inferenceService" class="com.mywebsite.ws.im.InferenceService" 
    scope="request"> 
    <aop:scoped-proxy /> 
    <property name="webServiceConfiguration" ref="wsPlayerConfiguration" /> 

    <property name="properties"> 
     <bean class="com.mywebsite.ws.im.PropertyResource"> 
      <property name="resource" 
       value="/WEB-INF/client-specific/InferenceMachine.properties" /> 
     </bean> 
    </property> 
</bean> 

<!-- ~~~~~~~ Application beans ~~~~~~~ --> 
<bean id="wsPlayerConfiguration" 
    class="com.mywebsite.ws.configuration.WebServiceConfiguration" 
    scope="request"> 
    <aop:scoped-proxy /> 
    <property name="playerConfiguration" ref="playerConfiguration"></property> 
    <property name="configurationSetup" ref="configurationSetup"></property> 
</bean> 

edilir

bu wsdl dosyasıdır:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
       xmlns:schema="http://www.mywebsitex.com/xml/webservice" 
       xmlns:tns="http://www.mywebsitex.com/xml/webservice" 
       targetNamespace="http://www.mywebsitex.com/xml/webservice"> 


<wsdl:types> 
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <xsd:import namespace="http://www.mywebsitex.com/xml/webservice"      
      schemaLocation="Request.xsd"/> 
    </xsd:schema> 

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <xsd:import namespace="http://www.mywebsitex.com/xml/webservice"      
      schemaLocation="Response.xsd"/> 
    </xsd:schema> 

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <xsd:import namespace="http://www.mywebsitex.com/xml/webservice"      
      schemaLocation="Error.xsd"/> 
    </xsd:schema> 
</wsdl:types> 


<wsdl:message name="inferencerequest">             
    <!-- <wsdl:part element="schema:inferencerequest" name="inferencerequest"/> -->    
</wsdl:message> 
<wsdl:message name="inferenceresponse">             
    <!-- <wsdl:part element="schema:inferenceresponse" name="inferenceresponse"/> -->    
</wsdl:message> 
<wsdl:message name="errorresponse">             
    <!-- <wsdl:part element="schema:errorresponse" name="errorresponse"/> -->    
</wsdl:message> 

<wsdl:portType name="mtchWS">             
    <wsdl:operation name="inference"> 
     <wsdl:input message="tns:inferencerequest" name="inferencerequest"/> 
     <wsdl:output message="tns:inferenceresponse" name="inferenceresponse"/> 
     <wsdl:fault message="tns:errorresponse" name="errorresponse"/>    
    </wsdl:operation> 
</wsdl:portType> 

<wsdl:binding name="mtchWSBinding" type="tns:mtchWS">     
    <soap:binding style="document"             
     transport="http://schemas.xmlsoap.org/soap/http"/>       
    <wsdl:operation name="inference"> 
     <soap:operation soapAction="http://www.mywebsitex.com/webservice"/>   
     <wsdl:input name="inferencerequest"> 
      <soap:body use="literal"/>            
     </wsdl:input> 
     <wsdl:output name="inferenceresponse"> 
      <soap:body use="literal"/> 
     </wsdl:output> 
     <wsdl:fault name="errorreponse"> 
      <!-- <soap:fault use="literal"/>--> 
     </wsdl:fault> 
    </wsdl:operation> 
</wsdl:binding> 

<wsdl:service name="mtchWSService"> 
    <wsdl:port binding="tns:mtchWSBinding" name="mtchWSPort">   
     <soap:address location="http://localhost:8080/mwp/mws"/>    
    </wsdl:port> 
</wsdl:service>     

ve bu web.xml''deki anladığım bu: Değişen

<servlet> 
    <servlet-name>mws</servlet-name> 
    <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
      <param-value>classpath:/resources/mtchwebservice/applicationContext-MtchWebService.xml</param-value> 
    </init-param> 

    <init-param> 
     <param-name>transformWsdlLocations</param-name> 
     <param-value>true</param-value> 
    </init-param> 

    <load-on-startup>2</load-on-startup> 
</servlet> 

cevap

8

:

<bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema"> 
    <property name="xsd" value="classpath:/wsdl/Request.xsd" /> 
</bean> 

için:

Request.xsd ait şema çözünürlüğü işe gitmeliyim. MessageDispatcherServlet, XsdSchema türlerini arar ve id/adı temel alarak şemaya bir xsd isteğini çözümler.

+0

Vay be, ben Tnx şimdi çalışıyor, bunun için size 100 noktayı vermek istiyorum! Wsdl oluştururken Response.xsd benim Request.xsd olarak ithalatçı mı? Request.xml'yi yalnızca doğruladığımdan, response.xsd, istemcilerin baktıkları ve bir yanıtın nasıl göründüğünü bildiği bir şeydir? – Spring