JAVA AXIS2 WEBSERVICE JAVA客户端的编写

前面我们已经定义好了加减乘除的方法并将这些方法发布为服务,那么现在要做的就是调用这些服务即可。客户端调用程序如下代码所示:CalculateServiceTest.java


[java]  view plain copy
  1. package edu.sjtu.webservice.test;  
  2.   
  3. import javax.xml.namespace.QName;  
  4. import org.apache.axis2.AxisFault;  
  5. import org.apache.axis2.addressing.EndpointReference;  
  6. import org.apache.axis2.client.Options;  
  7. import org.apache.axis2.rpc.client.RPCServiceClient;  
  8.   
  9. public class CalculateServiceTest {  
  10.   
  11.     /** 
  12.      * @param args 
  13.      * @throws AxisFault 
  14.      */  
  15.     public static void main(String[] args) throws AxisFault {  
  16.         // TODO Auto-generated method stub  
  17.   
  18.         // 使用RPC方式调用WebService  
  19.         RPCServiceClient serviceClient = new RPCServiceClient();  
  20.         Options options = serviceClient.getOptions();  
  21.         // 指定调用WebService的URL  
  22.         EndpointReference targetEPR = new EndpointReference(  
  23.                 "http://localhost:8080/WebServiceTest1/services/CalculateService");  
  24.         options.setTo(targetEPR);  
  25.   
  26.         // 指定要调用的计算机器中的方法及WSDL文件的命名空间:edu.sjtu.webservice。  
  27.         QName opAddEntry = new QName("http://webservice.sjtu.edu","plus");//加法  
  28.         QName opAddEntryminus = new QName("http://webservice.sjtu.edu","minus");//减法  
  29.         QName opAddEntrymultiply = new QName("http://webservice.sjtu.edu","multiply");//乘法  
  30.         QName opAddEntrydivide = new QName("http://webservice.sjtu.edu","divide");//除法  
  31.         // 指定plus方法的参数值为两个,分别是加数和被加数  
  32.         Object[] opAddEntryArgs = new Object[] { 1,2 };  
  33.         // 指定plus方法返回值的数据类型的Class对象  
  34.         Class[] classes = new Class[] { float.class };  
  35.         // 调用plus方法并输出该方法的返回值  
  36.         System.out.println(serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0]);  
  37.         System.out.println(serviceClient.invokeBlocking(opAddEntryminus,opAddEntryArgs, classes)[0]);  
  38.         System.out.println(serviceClient.invokeBlocking(opAddEntrymultiply,opAddEntryArgs, classes)[0]);  
  39.         System.out.println(serviceClient.invokeBlocking(opAddEntrydivide,opAddEntryArgs, classes)[0]);  
  40.   
  41.     }  
  42. }  
运行结果:
[java]  view plain copy
  1. 3.0  
  2. -1.0  
  3. 2.0  
  4. 0.5  


客户端代码需要引用很多Axis2jar包,如果读者不太清楚要引用哪个jar包,可以在Eclipse的工程中引用Axis2发行包的lib目录中的所有jar包。


eclipse包的引用

 

Eclipse引用包之前先将包引入进来,方法如下:

工程名称-属性-Java Build Path

1、source   引用工程内的包

2、projects  引用其他工程

3、Library    引用外部包

4、order and export  引入包的顺序

然后import  ...

因为你的AXIS2的包可能没有引入,安照上述方法应该是引用外部包,然后找到AXIS2相应的LIB文件夹下的所有包,引入就可以

你可能感兴趣的:(JAVA AXIS2 WEBSERVICE JAVA客户端的编写)