最近维护公司老分支项目导进来eclipse报错:
The method getPort(QName, Class<T>) in the type Service is not applicable for the arguments (QName, Class<SCServicePortType>, WebServiceFeature[]).
原因是:javax.xml.ws.Service这个类,即存在于jdk自带的rt.jar中,也存在于项目引用包jaxws-api.jar(也可能是其他包),这种情况就是两个jar包中存在包名和类名都完全相同的问题。现在需要的是rt.jar中的javax.xml.ws.Service类,但它却自动引入了jaxws-api.jar的javax.xml.ws.Service类,但是这两个jar包都不能去掉。
解决方法:
只有改变编译器优先选择的jar顺序(这个顺序是可以改变的):
在Eclipse中是在Java Build Path-->Order and Export里面,通过"up"/"down"按钮改变顺序,把包jdk放到前面就好了,或者清楚是什么包放到jdk的下面就可以了。