在cxf的文档中发现有以下的调用方法,来调用WebService
QName serviceName = new QName("http://first.webservice.deng.com/", "SendEmailImplService");
QName portName = new QName("http://first.webservice.deng.com/", "SendEmailImplPort");
Service service = Service.create(serviceName);
service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING,
"http://localhost/WebServiceRun/services/SendEmailImplPort");
com.deng.webservice.first.SendEmail client = service.getPort(portName, com.deng.webservice.first.SendEmail.class);
但我在一个环境中测试能通过,在另一个环境中,报错。
后来发现是jar包版本的问题
import javax.xml.ws.Service;
import javax.xml.ws.soap.SOAPBinding;
这两个类的实现有很多版本,在xfire,cxf,和不同的java版本中均有不同实现,因此要慎用。