gpt4 book ai didi

java - xsd:soapUI 中包含异常:org.apache.xmlbeans.XmlException:org.apache.xmlbeans.XmlException:错误:null 后文件意外结束

转载 作者:行者123 更新时间:2023-11-30 10:59:49 24 4
gpt4 key购买 nike

我在 soapUI 中创建新项目并从 URL 导入 wsdl 文件时遇到问题。它给了我以下异常

加载错误 [ http://localhost:8080/WS/PersonalDetails.xsd] : org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: null 后文件意外结束

我的 xsd 包括

<xsd:include schemaLocation="PersonalDetails.xsd" />
<xsd:include schemaLocation="PersonalRequest.xsd" />

xsd 的实际位置

WS/src/main/webapp/schemas/PersonalDetails.xsd

WS/src/main/webapp/schemas/PersonalRequest.xsd

我的spring-ws.xml

<bean id="MyWSService" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition" lazy-init="true">
<property name="schemaCollection">
<bean class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
<property name="inline" value="false" />
<property name="xsds">
<list>
<value>schemas/PersonalDetailsServiceOperations.xsd</value>
</list>
</property>
</bean>
</property>
<property name="portTypeName" value="MyWSEndpoint"/>
<property name="serviceName" value="MyWS" />
<property name="locationUri" value="/"/>
</bean>

我的 PersonalDetailsS​​erviceOperations.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:person="http://MyWS.com/"
targetNamespace="http://MyWS.com/"
elementFormDefault="qualified">
<xsd:include schemaLocation="PersonalDetails.xsd" />
<xsd:include schemaLocation="PersonalRequest.xsd" />
</xsd:schema>

我正在使用 spring+Maven+xsd+jaxb

请帮忙

非常感谢

最佳答案

经常发生这种情况是因为您没有将 WSDL 粘贴到 SOAP UI 的正确位置。当您在浏览器中浏览到您的 WSDL 时,spring-ws 将在几乎任何 url 上提供它,只要它以 XYZService.wsdl(或您配置的任何内容)结尾。这样做的缺点是,当您使用架构中某处的相对路径导入 XSD 时,SOAP UI 会尝试根据您提供的路径解析相对路径,但就像我说的那样,这实际上可能不是真正的路径WSDL。

例如,在我们的应用程序中,我们有一个 Spring-ws web 服务调用 ProcessService。它在 http://localhost:11000/ws/service/process/ProcessService.wsdl 提供。它包含使用相对路径导入的 XSD。如果将此 URL 粘贴到 SOAP UI 并运行它,它会正确解析 XSD 的路径。但是,您可以浏览到 http://localhost:11000/hello-world/ProcessService.wsdl即使 URL 不正确,它仍然会为您提供 WSDL。现在如果你取http://localhost:11000/hello-world/ProcessService.wsdl并将其粘贴到 SOAP UI 中,它将无法正确解析导入 XSD 的相对路径,因为那不是实际的 URL。在这种情况下,SOAP UI 会给出确切的错误。

我会在浏览器中浏览到您的 XSD,并确保您可以看到它。然后我会检查您粘贴到 SOAP UI 中的 URL,看看相对 URL 是否真的正确解析。如果不是,您需要提供 SOAP UI 的正确路径。

关于java - xsd:soapUI 中包含异常:org.apache.xmlbeans.XmlException:org.apache.xmlbeans.XmlException:错误:null 后文件意外结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31779004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com