如何为Web服务创建Java客户端?

6
我已经成功创建了Web服务,并进行了测试,也获取了WSDL文件。将使用这个Web服务的客户端是一个简单的Java类。
我能够创建一个JSP客户端并调用Web服务的方法。但我需要从Java类调用Web服务。
我应该如何将这个Java客户端与Web服务绑定?
以下是我在NetBeans中创建Java客户端的步骤:
1. 创建一个简单的J2SE应用程序。 2. 将它作为我的WebService的Web服务客户端。 3. 获取我的WebService的Web服务引用。
但我无法调用WebService的方法。以下是客户端文件...
package client_package;
public class client {

public static void main(String args[])
{
   System.out.println("1");
   System.out.println(hello("megha"));
   System.out.println("2");
}
private static String hello(String name) {


    WS_package.WebService1 service = new WS_package.WebService1(); //package WS_package does not exists
    WS_package.WebService1 port = service.getWebService1Port(); //package WS_package does not exists


 name =  port.hello(name);

return name;
}
}

这可能会有所帮助(一般而言):http://stackoverflow.com/questions/209385/java-webservice-client - Andreas Dolk
1
运行此代码时是否出现异常?如果是,我们能看到堆栈跟踪吗? - Michael Righi
@MichaelRighi,是的,我遇到了一个错误,提示WS_package包不存在。因此,我无法使用它的方法。端口没有被创建,因此无法调用port.hello(name)方法。 - jQueen
2个回答

2
你可以使用wsimport工具在命令行中生成客户端存根文件,具体操作如下:wsimport官方文档
wsimport -keep http://localhost:8080/webservices/helloService?wsdl

然后导入生成的文件并像之前一样使用它们。
HelloServiceImplService helloService = new HelloServiceImplService();
HelloService hello = helloService.getHelloServiceImplPort();

还有一些框架可用于与Web服务一起使用,例如Apache CXFApache Axis

更新:刚刚注意到这是一个旧问题,如果楼主知道答案,他应该更新主题。


0

我现在可以将简单的Java客户端绑定到我的Web服务。它们都位于同一台机器上。我该怎么绑定呢? - jQueen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接