我的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客户端无法在路径中找到模式。
由于
答案 0 :(得分:1)
SimpleXsdSchema将模式公开为bean的名称加上.xsd(在本例中为schema.xsd)。 所以你必须更新WSDL以指向它:
schemaLocation="schema.xsd"