我刚从Eclipse Indigo(3.7)升级到Eclipse Juno(4.2),我的WSDL在Indigo中没有任何问题进行验证,我现在收到一个奇怪的警告和错误,我不明白。
WSDL片段:
<wsdl:types>
<xsd:schema
targetNamespace="http://www.domain.com/ClientServices/LendingSimulation/V1"
xmlns:cpReq="http://www.domain.com/ClientServices/LendingSimulation/CalculateProfitabilityRequest"
xmlns:cpRes="http://www.domain.com/ClientServices/LendingSimulation/CalculateProfitabilityResponse"
xmlns:error="http://www.domain.com/fw/errorMgmt">
<xsd:import namespace="http://www.domain.com/ClientServices/LendingSimulation/CalculateProfitabilityRequest" schemaLocation="CalculateProfitabilityRequest.xsd" />
<xsd:element name="calculateProfitabilityRequest" type="cpReq:CalculateProfitabilityRequestType" />
</xsd:schema>
</wsdl:types>
Juno使用以下警告标记xsd:import行:
XSD: The location 'CalculateProfitabilityRequest.xsd' has not been resolved
然后标记xsd:element行,并显示以下错误:
XSD: Type reference 'http://www.domain.com/ClientServices/LendingSimulation/CalculateProfitabilityRequest#CalculateProfitabilityRequestType' is unresolved
我很难过。我不仅不理解警告或错误消息的含义,我不明白为什么Juno将此标记为问题,但在Indigo中没有问题。如果我按Ctrl键单击schemaLocation,Eclipse将打开相关的xsd文件,因此Eclipse不会找到该文件的问题。
我试过清理这个项目,但它没有任何区别。
修改
我咬紧牙关,决定重新安装Indigo Java EE(3.7)。但是,现在当我加载我的项目时,我得到了与Juno相同的错误!所以它似乎不是Juno本身,而是我的配置中的某些东西是不正确的。但是,我不知道在哪里可以找到问题,或者为什么Eclipse抱怨该位置没有得到解决。这几乎就像我必须以某种方式在Eclipse中预加载文件一样,但我不知道如何。
如果我删除项目,并将项目重新加载为现有Maven项目,则所有警告和错误消息都将消失。但是,该项目随后与我的SCM无关。如果我通过SCM加载它,那么我会重新发生此错误。我猜测项目配置必须有一些东西,但是方面是相同的,所以我不知道哪个配置是不同的。无论如何要告诉你?
赞赏任何想法或建议!
答案 0 :(得分:9)
好的 - 经过无数个小时的不同测试和试验,我终于找到了罪魁祸首。它不是我之前发布的RTC或Maven,而是使用的WSDL验证器。在安装WebSphere工具的过程中(我认为!),我似乎已经安装了IBM WSDL Validator(在Preferences-&gt; Validation-&gt; WSDL Validator - &gt;实现下拉列表中)。我将实现重置为基于WSDL4J的WSDL Validator,一切正常并且符合预期。
希望将来可以帮助其他人。