2

我正在开发一个在 localhost 中运行 Web 服务的项目。我为此使用了 jax-ws。当我在与服务器相同的项目中有一个客户端时,它工作正常。但是现在我正在尝试创建一个新的客户端项目,但是当我尝试运行时出现此错误:

Undefined port type: {http://test.main/}MyWSInterface

我已经在两个类中复制了接口:

package main.test;

导入 javax.activation.DataHandler;导入 javax.jws.WebMethod;导入 javax.jws.WebService;导入 javax.jws.soap.SOAPBinding;导入 javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)
public interface MyWSInterface {

@WebMethod public void sendTask(String convertType, String outputFileName, DataHandler dH);

}

在我的主要测试方法中,我在这一行得到了这个错误:

MyWSInterface dsws = service.getPort(MyWSInterface.class);

这是此方法的第 4 行:

private void runTest() throws MalformedURLException {
    URL url = new URL("http://localhost:8080/MyWS?wsdl");
    QName qname = new QName("http://ws.sender.something.somecompany.com/", "MyWSInterfaceImplService");

    Service service = Service.create(url, qname);
    DocShifterWS dsws = service.getPort(DocShifterWS.class);
    FileDataSource ds = new FileDataSource(new File("C:\\temp\\testinput.txt\\"));
    DataHandler dh = new DataHandler(ds);
    dsws.sendTask("pdf", "something.pdf", dh);

}
4

1 回答 1

1

在实现类的@WebService注解中给出endpointIneterface,如果不给出端点接口,则在使用getPort方法时必须提及完全限定的端口名称。

MyWSInterface dsws = service.getPort(PortQName,MyWSInterface.class);

于 2013-04-23T18:10:57.077 回答