嵌入式JavaSE服务器中的Xsd位置
我将JavaSE6中的内置服务器用于SOAP服务。我有一个带有XSD的WSDL 我的代码:嵌入式JavaSE服务器中的Xsd位置,java,soap,jetty,jax-ws,embedded-jetty,Java,Soap,Jetty,Jax Ws,Embedded Jetty,我将JavaSE6中的内置服务器用于SOAP服务。我有一个带有XSD的WSDL 我的代码: Endpoint.publish ("http://localhost:9999/event-ws/wsdl", new SoapImpl ()); 但是当我在soapui中打开这个WSDL时,它说它找不到XSD(localhost:9999/event ws/test.XSD):服务器返回404 XSD和WSDL一起放在一个文件夹中 编辑1: 来自本地文件的wsdl: <wsdl:types&g
Endpoint.publish ("http://localhost:9999/event-ws/wsdl", new SoapImpl ());
但是当我在soapui中打开这个WSDL时,它说它找不到XSD(localhost:9999/event ws/test.XSD
):服务器返回404
XSD和WSDL一起放在一个文件夹中
编辑1:
来自本地文件的wsdl:
<wsdl:types>
<xsd:schema targetNamespace="http://localhost/extern/">
<xsd:import schemaLocation="test.xsd"
namespace="http://localhost/extern/event" />
<xsd:element name="getAccountChangeTaskEvents">
....
....
我使用wsimport和编写的实现从wsdl(和xsd)生成了一个接口
编辑2:
来自浏览器的wsdl:
<wsdl:types>
<xsd:schema targetNamespace="http://localhost/extern/">
<xsd:import schemaLocation="test.xsd" namespace="http://localhost/extern/event"/>
<xsd:element name="getAccountChangeTaskEvents">
<xsd:complexType>
....
....
编辑3
但web服务已成功部署,我可以使用它。WSDL是否导入XSD?您可以在浏览器中打开该XSD吗?从浏览器查看WSDL并尝试打开XSD,让我知道会发生什么哦,不幸的是XSD在浏览器中无法打开。这就是问题所在。我继续讨论在wsdl for xsd()中注册的url,并得到404错误。所以这就是问题所在,SOAP UI并没有骗你:)显示wsdl(你的本地文件)中导入xsd的部分。它们肯定不应该是相同的,在浏览器中,您应该会看到如下内容:
检查服务器日志,了解它为什么没有正确拾取XSD。快速修复方法是直接将所有类型从XSD移动到WSDL,这将解决问题,我目前无法解释为什么导入不起作用。