文档章节

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

yzbty23
 yzbty23
发布于 2016/07/11 16:35
字数 638
阅读 117
收藏 4

我们通常都将编写好的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:

package com.mzh.webservice;
public class HelloWorld {
    
    public String connectStr(String str1,String str2,int flag){
        String resultStr="no str";
        if(flag==1){
            resultStr=str1+"---"+str2;
        }else if(flag==2){
            resultStr=str2+"---"+str1;
        }
        System.out.println(resultStr);
        return resultStr;
    }
}

 


     第四步:右击HelloWorld.java---Web Services---Create Web service.依次点击下一步……finish。此时发现WebContent目录下生成一个wsdl目录,目录下有一个HelloWorld.wsdl
     第五步:测试 web service :右击HelloWorld.wsdl---Web Services---Test with Web Services Explorer---点击方法名connectStr----输入参数mzh,zyd,1---点go.此时会发现控制台输出mzh---zyd,说明 测试成功。WebService没有问题。
      第六步:编写客户端调用类,利用AXIS远程调用HelloWorld.(为了体现远程调用,把此类放到另外一个工程里去)代码如下:

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,//参数类型:String
    javax.xml.rpc.ParameterMode.IN);//参数模式:'IN' or 'OUT'
    
   call.addParameter("str2", //参数名
    org.apache.axis.encoding.XMLType.XSD_STRING,//参数类型:String
    javax.xml.rpc.ParameterMode.IN);//参数模式:'IN' or 'OUT'
    
   call.addParameter("flag", //参数名
    org.apache.axis.encoding.XMLType.XSD_INT,//参数类型:INT
    javax.xml.rpc.ParameterMode.IN);//参数模式:'IN' or 'OUT'
      //设置返回值类型:
    call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//返回值类型:String
    String 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.说明测试成功。
     第八步:至此,大功告成!

© 著作权归作者所有

yzbty23
粉丝 122
博文 284
码字总数 248292
作品 0
浦东
程序员
私信 提问
Axis开发webservice的简单实例(转)

本文主要记录Axis开发webservice简单实例的详细过程和步骤: Axis官方网站:http://ws.apache.org/axis/ 可以在官网下载最新1.4的包:axis-bin-14.zip 将解压后的axis-14webapps下的axis目录...

颜建海
2014/03/20
323
0
应用 AXIS 开始 Web 服务之旅

一. 介绍 本文并不是想介绍Web服务的原理、系统架构等,我们假设您已经了解了关于Web服务的一些基本的概念、原理等知识。本文主要是针对那些已经了解Web服 务概念,但是还没有亲身体会Web服...

红薯
2008/10/05
2.3K
5
AXIS实现Web服务深入篇

本文主要介绍使用service方式实现Web服务、复杂类型参数或者返回值以及面向消息/文档的服务类型,同时还会简单提及Web服务的会话管理以及安 全问题等等。 前段时间我的一篇文章《应用AXIS开始...

红薯
2008/10/05
1K
2
使用AXIS生成SOAP Web Service客户端的方法

需要准备的工具: JDK 1.5 或以上 AXIS 1.4 从http://labs.renren.com/apache-mirror//ws/axis/14/axis-bin-14.zip下载axis1.4,解压到某个目录(比如/media/tools/java/axis_1.4). 设置以下......

mj4738
2011/12/08
5.4K
2
使用axis1.4发布WebService简单示例

一、安装axis1.4项目 1-下载axis-bin-14.zip并解压到E:toolsaxis-14 2-复制E:toolsaxis-1_4webappsaxis目录到tomcat的webapps目录中 3-启动tomcat后在浏览器中输入http://127.0.0.1:8080/axi...

冰玉翔龙
2013/08/05
5.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx 快速安装详解

一、Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамбле...

网络小虾米
24分钟前
4
0
技术分享 | slave_relay_log_info 表认知的一些展开

作者:胡呈清 slave_relay_log_info 表是这样的: mysql> select * from mysql.slave_relay_log_info\G *************************** 1. row *************************** Number_of_lin......

爱可生
26分钟前
3
0
nginx配置http访问自动跳转到https

server {listen 80;server_name www.域名.com;rewrite ^(.*) https://$server_name$1 permanent;}server {listen 443;server_name www.域名.com;root /home/www;ssl on;......

很好亦平凡ms
26分钟前
4
0
SpreadJS:一款中国研发的类Excel开发工具,功能涵盖Excel的 95% 以上

Excel 作为一款深受用户喜爱的电子表格工具,借助其直观的界面、出色的计算性能、数据分析和图表,已经成为数据统计领域不可或缺的软件之一。 基于Excel对数据处理与分析的卓越表现,把Excel...

葡萄城技术团队
26分钟前
3
0
用javafx框架tornadofx做了个天气预报的程序

class WeatherApp : App(WeatherView::class)class WeatherView : View("十五天天气预报") { val weatherVM: WeatherViewModel by inject() val controller: WeatherController by......

oschina4cyy
30分钟前
4
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部