Java Wsimport生成的类和原始Web服务类中的名称冲突
我有一个简单的web服务类,定义如下:Java Wsimport生成的类和原始Web服务类中的名称冲突,java,web-services,class,duplicates,wsimport,Java,Web Services,Class,Duplicates,Wsimport,我有一个简单的web服务类,定义如下: package com.me.basiccalcws; import javax.jws.WebService; @WebService public class Calculator { public int add(int a, int b) { return a + b; } } Add.java AddResponse.java Calculator.java CalculatorService.java Ob
package com.me.basiccalcws;
import javax.jws.WebService;
@WebService
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
Add.java
AddResponse.java
Calculator.java
CalculatorService.java
ObjectFactory.java
package-info.java
我使用wsgen工具生成wsdl:
然后我使用wsimport生成客户端存根:
wsimport -s src ..\_wsgen\wsdl\CalculatorService.wsdl
运行wsimport后生成的文件如下:
package com.me.basiccalcws;
import javax.jws.WebService;
@WebService
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
Add.java
AddResponse.java
Calculator.java
CalculatorService.java
ObjectFactory.java
package-info.java
所有这些文件都与我的原始web服务类(com.me.basiccalcws)具有相同的名称空间
当我将这些文件导入Eclipse项目时,会发生名称冲突。我最初的类名是Calculator,但wsimport工具在同一命名空间中创建了另一个名为Calculator的类
如何防止这种名称空间/名称冲突(或者是故意的)?最简单的方法是在
javax.jws.WebService
注释中提供targetNamespace
,诸如此类
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
选项,则此targetNamespace
是destiny软件包