java访问webservice服务(一)

时间:2023-03-08 22:54:59
java访问webservice服务(一)

欢迎转载  http://www.cnblogs.com/shizhongtao/p/3433653.html

使用wsdl2java工具命令

  一、 调出命令提示符cd到cxf的解压路径“D:\学习文档\jar\cxf\apache-cxf-2.6.8\bin”,在路径下执行

wsdl2java -p com.bing.client -frontend jaxws21 http://localhost:8080/webservice/ws/helloworld?wsdl

我这里是存放到命令路径下的com/bing/client文件下,参数说明-p是文件路径,当然你可以在加上-d来指定盘符,如果不指定就是当前的相对路径

-client 指定要生成一个测试客户端的“起点代码”(starting point code),其中包含了端口中所有方法的测试样例代码。
-d 指定我们想要把生成的文件放到哪个目录下,默认是wsdl2Java命令所在的目录。
-p 指定生成文件的包名;默认是根据WSDL文件中的命名空间相对应。
-frontend 指定前端类型及版本;目前仅支持 JAXWS 前端,用 "jaxws21" 表明要生成JAX-WS 2.1 兼容的代码(Jre6自带的就是这个版本)
注(网上查询):javax.xml.ws.Service中缺少Service(URL, QName, WebServiceFeature[]) 构造方法,为了减少麻烦,我直接生成了兼容的版本,据说也可以替换jre中的service类来解决兼容问题。
如果利用myeclipse建立WebServiceClient执行下面两个步骤,也可以生成客户端。
1.在Web工程上右键-->new-->Other-->MyEclipse下的WebService下的Web Service Client
2.在打开窗口上的Project处选择要放入哪个工程,然后选择WSDL URL,把WebService地址填上.也可以选择本地wsdl文件

执行完之后,就会生成相应的客户端类。

二、在eclipse中创建java项目,把刚刚生成的类考进去。

就可以像对j对象操作一样来调用webservice服务了。前面的webservice服务有时间补上。

 package com.bing.test;

 import java.net.MalformedURLException;
import java.net.URL; import com.bing.client.Helloworld;
import com.bing.client.HelloworldService;
import com.bing.client.User; public class BasicClient {
public static void main(String[] args){
URL url=null;
try {
url = new URL("http://192.168.3.71:8080/webservice/ws/helloworld?wsdl");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HelloworldService server = new HelloworldService(url); //具体构造函数可以自己查看生成的客户端。里面设置的有默认的客户端地址,就是上面命令中的地址。
Helloworld hello = server.getHelloworldPort(); String result = hello.sayHi("East");
System.out.println(result); User user = new User();
user.setName("East");
user.setAge(35);
System.out.println(hello.addUser(user)); }
}