`
mzh_2008beijing
  • 浏览: 233984 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个简单的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:
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.说明测试成功。
     第八步:至此,大功告成!
分享到:
评论
4 楼 z2007130205 2014-05-19  
楼主真缺!!!!!这代码真无语。。。
3 楼 u010029812 2014-01-03  
右击HelloWorld.java---Web Services---Create Web service.依次点击下一步……finish?
这个在哪里??怎么没找到呢?
2 楼 mzh_2008beijing 2012-08-25  
zhuhuqiu 写道
楼主,我写你的例子,在控制台没有打印mzh--zyd,可打印到no str,这说明什么呢?调用没成功!

没有抛异常吗?没有的话检查一下flag参数。
1 楼 zhuhuqiu 2012-08-23  
楼主,我写你的例子,在控制台没有打印mzh--zyd,可打印到no str,这说明什么呢?调用没成功!

相关推荐

    Axis动态调用webService

    下面是一个简单的 Java 代码示例,演示如何使用 Axis 调用 Web 服务: ```java import org.apache.axis.Constants; import org.apache.axis.encoding.ser.SimpleDeserializer; import org.apache.axis.wsdl.gen....

    Java完整的Web Service示例代码,学会做web service程序

    Web服务是一种基于标准...总的来说,这个Java Web Service示例代码是一个很好的起点,它涵盖了服务端开发和客户端调用的基本流程。深入学习和实践,你将能够熟练地创建和使用各种Web服务,实现不同系统间的无缝集成。

    Java WebService 简单实例 方式二(axis1直接调用方式)

    本篇文章将详细介绍如何使用Apache Axis 1(以下简称Axis1)来创建和调用一个简单的Java Web Service示例。通过这种方式,我们不仅能够学习到Java Web Service的基本概念和工作原理,还能掌握具体的实现步骤和技术...

    Android axis调用Webservice

    - 创建一个同步或异步调用Web Service的类,通常会用到`org.apache.axis2.client.ServiceClient`。 3. **生成客户端 stubs:** - 服务发布后,可以通过Axis2的wsdl2java工具,根据服务的WSDL(Web Service ...

    axis实现的web service例子

    这个“axis实现的web service例子”提供了一个完整的示例,包括服务端和客户端两部分,方便开发者快速集成到自己的项目中。 首先,我们来理解服务端部分——`WebServiceServerByAxis`。这部分主要展示了如何使用...

    PB11调用web service的WEB FROM与WINFROM样例

    在这个示例中,WINFROM可能被用来创建一个本地用户界面,用户可以通过该界面触发Web Service调用,比如查询天气或火车信息。 4. **天气查询**: 这个功能通常涉及调用提供天气信息的Web Service,如OpenWeatherMap...

    Java调用.NET web service

    5. **调用Web Service**:使用Java客户端代理类的方法,传入参数,执行Web Service的远程调用。如果需要传递自定义类,确保这些类在Java和.NET中都有对应的序列化实现。 6. **处理响应**:Web Service调用完成后,...

    axis开发web service程序

    **Apache Axis** 是一个用于构建 Web Service 的开源框架,提供了简单易用的方式来创建和部署 Web Service。Axis 支持多种版本,其中 Axis1.x 和 Axis2.x 最为常见,Axis1.x 相较之下更加稳定。 - **下载所需组件**...

    xFire发布Web Service,并调用远程服务

    总结一下,xFire作为一个早期的Web服务框架,帮助开发者简化了Web服务的开发和调用。通过理解服务的发布和调用过程,以及如何配置和使用`service.xml`文件,你可以有效地利用xFire实现跨系统间的通信。同时,提供的...

    Hessian Binary Web Service Protocol远程接口调用入门Demo

    Hessian二进制Web服务协议(Hessian Binary Web Service Protocol)是一种高效的、轻量级的远程过程调用(RPC)协议,它主要用于提高Web服务之间的通信效率。Hessian由Caucho Technology公司开发,旨在解决XML-RPC在...

    WebService大讲堂之Axis2及其它web service资料

    本讲堂重点探讨的是 Axis2,一个强大的Web Service框架,它是Apache软件基金会开发的第二代Web Service引擎。 一、什么是Axis2? Axis2是Apache Axis的升级版,它提供了更高效、更灵活的服务架构。Axis2基于模块化...

    调用BIEE提供的web service

    在标签中提到的“源码”可能意味着博客文章包含了调用BIEE Web服务的示例代码,而“工具”可能是指用于调用Web服务的开发工具或框架。由于这里没有具体的压缩文件列表,无法提供进一步的代码分析或示例。若需深入...

    web service axis项目实例

    标签中的"Java"明确了编程语言,"web service"表示我们要处理的是基于HTTP协议的远程调用,而"axis"是实现这一目标的工具。Axis是Java Web服务栈的重要组成部分,它支持SOAP(Simple Object Access Protocol)和WSDL...

    Axis开发Web Service的实例

    本文将通过一个具体的示例来展示如何使用Apache Axis开发Web服务。 #### 二、环境搭建 1. **Java SDK**: 需要安装J2SE SDK 1.3或1.4版本(建议使用1.4.2版本)。 2. **Servlet Container**: 使用Tomcat 5.0作为...

    web service 简单示例

    本示例将基于XFire库来创建一个简单的Web服务,展示如何在MyEclipse集成开发环境中快速构建、部署和测试一个“HelloWorld”Web服务。 1. **XFire简介** XFire是一个强大的Java SOAP框架,它提供了快速开发Web服务...

    axis2调用WebService详细说明

    接下来,我们通过一个具体的客户端示例来演示如何使用Axis2进行WebService的调用。 ##### 1. 生成客户端代码 - 使用`wsdl2java.bat`脚本自动生成客户端代码。该脚本位于`axis2-1.4\bin`目录下,命令格式如下: ``...

    JAVA调用.NETWeb Service完整代码

    这些类包含了调用Web Service所需的所有方法和数据类型。 3. 创建代理对象:在Java代码中,实例化生成的代理类对象,这将连接到.NET Web Service。 4. 调用服务方法:通过代理对象调用.NET Web Service的方法,...

    Java调用以WSDL形式发布的web service.doc

    当Java应用需要与一个以WSDL发布的Web服务交互时,它通常会使用一种名为“SOAP”(简单对象访问协议)的协议来发送和接收消息。 1. 使用Apache Axis调用远程Web服务 Apache Axis是一个流行的Java库,它允许开发者...

Global site tag (gtag.js) - Google Analytics