【问题标题】:WSImport doesn't appear to be working with was8.5 JAXWSWSImport 似乎不适用于 was8.5 JAXWS
【发布时间】:2013-12-19 17:51:14
【问题描述】:

我运行以下命令

wsimport -s ..\Code\app\src\main\java http://localhost:9080/shortbus/ShortbusService/ShortbusService.wsdl 

这会运行并生成代码,但是,当我尝试根据我得到的新代码进行编译时...

...\ShortbusService_Service.java:[43,8] cannot find symbol
symbol  : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.w
s.WebServiceFeature[])
location: class javax.xml.ws.Service

我尝试显式添加 jaxws-api.jar 和 rt.jar,但似乎都不起作用。有人可以帮我解决我所缺少的吗?

更新

如果我手动编辑为(注意 cmets)...

public ShortbusService_Service(WebServiceFeature... features) {
    //super(__getWsdlLocation(), SHORTBUSSERVICE_QNAME, features);
    super(__getWsdlLocation(), SHORTBUSSERVICE_QNAME);
}

public ShortbusService_Service(URL wsdlLocation) {
    super(wsdlLocation, SHORTBUSSERVICE_QNAME);
}

public ShortbusService_Service(URL wsdlLocation, WebServiceFeature... features) {
    //super(wsdlLocation, SHORTBUSSERVICE_QNAME, features);
    super(wsdlLocation, SHORTBUSSERVICE_QNAME);
}

public ShortbusService_Service(URL wsdlLocation, QName serviceName) {
    super(wsdlLocation, serviceName);
}

public ShortbusService_Service(URL wsdlLocation, QName serviceName, WebServiceFeature... features) {
    //super(wsdlLocation, serviceName, features);
    super(wsdlLocation, serviceName);
}

它可以编译,但我不想这样做。

【问题讨论】:

标签: websphere jax-ws


【解决方案1】:

WAS 8.5 的wsimport 生成的代码将生成与 JAX-WS 2.2 兼容的代码,因为 WAS 8.5 支持 JAX-WS 2.2。

您似乎正在尝试针对代表 JAX-WS 早期版本(例如 2.0 或 2.1)的 JAR 文件编译代码(在 JAX-WS 2.2 中添加了接收“features”的 Service 构造函数)。

所以,你有两个选择:

  1. 更改您的 IDE 设置(如果您使用的是 RAD,您可能必须迁移到更高版本的 RAD),以便您的项目针对 WAS 8.5 运行时进行编译;或

  2. wsimport 使用-target 开关,提供值2.12.0。这将生成可以针对旧版本的 JAX-WS 编译的代码。

【讨论】:

    猜你喜欢
    • 2015-07-06
    • 2020-04-04
    • 2023-04-06
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多