我有一个 Web 服务,它是使用 WSDL-first 设计的,并定义了一些方法。 WSDL 文件存储在 src\main\resources\wsdl\myservice.wsdl
中。 java 源代码是使用 mvn jaxws:wsimport
生成的。
今天,我向 WebService 添加了一个简单的方法,并且重新生成了源代码。 RAD 显示 wsdl 没有错误。但是,它在 servlet 类上不显示错误“WSDL 文件未找到”:
@javax.jws.WebService(wsdlLocation = "wsdl/myservice.wsdl",
endpointInterface = "com.example.MyService",
targetNamespace = "http://example.com/myservice",
serviceName = "myservice", portName = "myserviceSOAP11")
@javax.xml.ws.BindingType(value = javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
public class MyServiceImpl implements MyService
除了定义了一个新方法之外,该类中没有任何更改。
由于这些验证错误,我现在无法将服务部署到 WebSphere。这些错误从何而来?这可能是 WSDL 中的错误吗?如果是这样,当 IBM RAD 9.0 完全没有给我提供有关 WSDL 本身的错误消息时,我该如何检查哪一个?
--编辑--
我能够将所有更改移至旧版本 RAD (8.0) 中加载的项目副本,并设法启动和测试 Web 服务。看起来 RAD 9.0 不接受 WSDL 中的一些其他合法构造。不过,没有给出任何具体信息。是否有可能找出到底是哪行/结构导致该 IDE 出现问题?
最佳答案
以下是我在 RAD 9 中可以使用的一些设置。因此,我对您的项目结构做出一些假设。
- 我在 src/main/resources/wsdl 文件夹中有 wsdl 文件。我假设您的资源文件夹还包含
WEB-INF
文件夹和网页(实际上我使用的是webapp
文件夹而不是resources
,但是它应该类似地工作)。 - 我的服务实现位于
src/main/java
文件夹中。 - 在
Window > Preferences > Java EE > Maven > Maven Project Settings
中,我设置了 Maven 值。 - 在选定的项目
Properties > Deployment Assembly
中,我将resources
文件夹设置为部署到'/'
关于java - @javax.jws.WebService wsdlLocation ("WSLD file not found"- IBM RAD 9.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23633878/