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服务有时间补上。
1 package com.bing.test; 2 3 import java.net.MalformedURLException; 4 import java.net.URL; 5 6 import com.bing.client.Helloworld; 7 import com.bing.client.HelloworldService; 8 import com.bing.client.User; 9 10 public class BasicClient { 11 public static void main(String[] args){ 12 URL url=null; 13 try { 14 url = new URL("http://192.168.3.71:8080/webservice/ws/helloworld?wsdl"); 15 } catch (MalformedURLException e) { 16 // TODO Auto-generated catch block 17 e.printStackTrace(); 18 }
19 HelloworldService server = new HelloworldService(url); //具体构造函数可以自己查看生成的客户端。里面设置的有默认的客户端地址,就是上面命令中的地址。 20 Helloworld hello = server.getHelloworldPort(); 21 22 String result = hello.sayHi("East"); 23 System.out.println(result); 24 25 User user = new User(); 26 user.setName("East"); 27 user.setAge(35); 28 System.out.println(hello.addUser(user)); 29 30 31 } 32 }