0

我有一个简单的 Web 服务类,定义如下:

package com.me.basiccalcws;

import javax.jws.WebService;

@WebService
public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

我使用wsgen工具生成一个wsdl

wsgen -classpath ..\bin -wsdl -s src -r wsdl -d bin com.me.basiccalcws.Calculator

然后我使用wsimport生成客户端存根:

wsimport -s src ..\_wsgen\wsdl\CalculatorService.wsdl

运行wsimport后生成的文件如下:

Add.java
AddResponse.java
Calculator.java
CalculatorService.java
ObjectFactory.java
package-info.java

并且所有这些文件都具有与我原来的 Web 服务类 (com.me.basiccalcws) 相同的命名空间。

当我将这些文件导入到我的 Eclipse 项目中时,会出现名称冲突。我原来的类名是 Calculator,但是wsimport工具在同一个命名空间中创建了另一个名为 Calculator 的类。

如何防止这种命名空间/名称冲突(或者是故意的)?

4

1 回答 1

1

您可以做的最简单的事情是targetNamespacejavax.jws.WebService注释中提供类似的东西。

package com.me.basiccalcws;

import javax.jws.WebService;

@WebService(targetNamespace = "http://client.basiccalcws.me.com/")
public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

如果您没有在 中提供-p选项wsimport,这targetNamespace就是命运包。

于 2013-01-18T22:27:56.890 回答