【问题标题】:Soap web service schema location can't be found in wsdl在 wsdl 中找不到 Soap Web 服务架构位置
【发布时间】:2011-06-15 15:29:14
【问题描述】:

我的 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地址来访问我的网络服务时,找不到request.xsd架构;

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

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

谢谢

【问题讨论】:

    标签: java web-services spring soap wsdl


    【解决方案1】:

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

    schemaLocation="schema.xsd"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多