在wsdl中找不到Soap Web服务模式位置

时间:2011-06-15 15:29:14

标签: java web-services spring soap wsdl

我的Web服务是一个jar文件,被用作另一个Web应用程序的插件,因此我在主Web应用程序中只有一个web.xml,并且给我的调度程序servlet提供了依据,并且它运行良好,但是我的问题是当我想通过soap客户端使用它的wsdl文件来使用它时(soapUI无法在wsdl中找到模式)

这是我的servlet.xml在jar文件中的样子;

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

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

这就是我的wsdl文件看起来像名字是spring-ws.wsdl

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

当我尝试使用soap客户端(soapUI)通过显示我的wsdl url地址来访问我的web服务时,找不到request.xsd模式,这是;

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

wsdl和schema文件位于我的Web服务插件jar中的不同文件夹中,我的错误在哪里?我可以通过上面的url在浏览器中公开wsdl,但是soap客户端无法在路径中找到模式。

由于

1 个答案:

答案 0 :(得分:1)

SimpleXsdSchema将模式公开为bean的名称加上.xsd(在本例中为schema.xsd)。 所以你必须更新WSDL以指向它:

schemaLocation="schema.xsd"