首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

一个简略的AXIS远程调用Web Service示例

2012-08-26 
一个简单的AXIS远程调用Web Service示例我们通常都将编写好的Web Service发布在Tomcat或者其他应用服务器

一个简单的AXIS远程调用Web Service示例
      我们通常都将编写好的Web Service发布在Tomcat或者其他应用服务器上,然后通过浏览器调用该Web Service,返回规范的XML文件。但是如果我们不通过浏览器调用,而是通过客户端程序调用,该如何实现?
     接下来,我们利用Eclipse作为开发工具,演示一个Axis调用WebService的简单示例。步骤如下:
    
     第一步:新建Web Project 。
     第二步:导入AXIS类库。(官方下载:http://apache.etoak.com//axis/axis2/java/core/1.5.4/axis2-1.5.4-bin.zip)(即把下载包里../lib/目录下的jar文件拷贝到工程的classpath下。  )
     第三步:新建一个简单的连接字符串的类HelloWorld.java:

import java.rmi.RemoteException;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class HelloWorldTest {   public String invokeRemoteFuc(){      String endpoint=            "http://192.168.1.236:8080/Axis2/services/HelloWorld";      String result ="no result!";      Service service = new Service();      Call call;      try {          call=(Call)service.createCall();          call.setTargetEndpointAddress(endpoint);//远程调用路径 call.setOperationName("connectStr");//调用的方法名  //设置参数名:    call.addParameter("str1", //参数名org.apache.axis.encoding.XMLType.XSD_STRING,//参数类型:Stringjavax.xml.rpc.ParameterMode.IN);//参数模式:'IN' or 'OUT'   call.addParameter("str2", //参数名org.apache.axis.encoding.XMLType.XSD_STRING,//参数类型:Stringjavax.xml.rpc.ParameterMode.IN);//参数模式:'IN' or 'OUT'   call.addParameter("flag", //参数名org.apache.axis.encoding.XMLType.XSD_INT,//参数类型:INTjavax.xml.rpc.ParameterMode.IN);//参数模式:'IN' or 'OUT'      //设置返回值类型:call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//返回值类型:StringString str1="mzh";String str2="zyd";int flag=1;result = (String)call.invoke(new Object[]{str1,str2,flag});//远程调用     } catch (ServiceException e) {e.printStackTrace();     } catch (RemoteException e) {e.printStackTrace();     }return result;   }//测试: public static void main(String[] args){      HelloWorldTest test = new HelloWorldTest();      String result = test.invokeRemoteFuc();      System.out.println(result);  }}

   (注意:1、设置方法名和参数名的时候,必须与被调用的WebService保持一致;2、传递的参数需封装到了一个Object数组里)
    第七步:测试:HelloWorldTest ---Run as---Java application,如果发现控制台正确输出  mzh---zyd.说明测试成功。
     第八步:至此,大功告成!

热点排行