在 wsdl 中找不到 Soap Web 服务架构位置
我的 Web 服务是一个 jar 文件,并被用作另一个 Web 应用程序的插件,所以我在主 Web 应用程序中只有一个 web.xml 并引用我的调度程序 servlet,它工作得很好,但我的问题是当我想通过肥皂客户端使用它的 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>
当我尝试通过显示我的 wsdl url 地址(即;
http://localhost:8080/mwp/mws/mwsid.wsdl
wsdl 和 schema 文件位于我的 Web 服务插件 jar 中的不同文件夹中,我的错误在哪里?我可以通过上面的 url 在浏览器中公开 wsdl,但肥皂客户端无法在路径中找到架构。
谢谢
My web service is as a jar file and being used as a plugin from another web application, so I have only one web.xml in the main web app and give referance to my dispatcher servlet, and it works good, but my problem is when I want to use it by using its wsdl file by a soap client(soapUI can not find the schemas in the wsdl)
this is how my servlet.xml looks like in the jar file;
<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>
And this is how my wsdl file looks like it's name is 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>
This can not find the request.xsd schema when I try to access my webservice using a soap client(soapUI) by showing my wsdl url address, which is;
http://localhost:8080/mwp/mws/mwsid.wsdl
The wsdl and schema files are on different folders in my web service plugin jar, where is my mistake? I can expose the wsdl in browser by the url above, but soap client cant find the schemas in the path.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SimpleXsdSchema 将架构公开为 bean 名称加 .xsd(在本例中为 schema.xsd)。
因此,您必须更新 WSDL 以指向它:
The SimpleXsdSchema exposes the schema as the name of the bean plus .xsd (in this case schema.xsd).
So you have to update the WSDL to point to it: