我们通常都将编写好的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.说明测试成功。
第八步:至此,大功告成!
分享到:
相关推荐
下面是一个简单的 Java 代码示例,演示如何使用 Axis 调用 Web 服务: ```java import org.apache.axis.Constants; import org.apache.axis.encoding.ser.SimpleDeserializer; import org.apache.axis.wsdl.gen....
Web服务是一种基于标准...总的来说,这个Java Web Service示例代码是一个很好的起点,它涵盖了服务端开发和客户端调用的基本流程。深入学习和实践,你将能够熟练地创建和使用各种Web服务,实现不同系统间的无缝集成。
本篇文章将详细介绍如何使用Apache Axis 1(以下简称Axis1)来创建和调用一个简单的Java Web Service示例。通过这种方式,我们不仅能够学习到Java Web Service的基本概念和工作原理,还能掌握具体的实现步骤和技术...
- 创建一个同步或异步调用Web Service的类,通常会用到`org.apache.axis2.client.ServiceClient`。 3. **生成客户端 stubs:** - 服务发布后,可以通过Axis2的wsdl2java工具,根据服务的WSDL(Web Service ...
这个“axis实现的web service例子”提供了一个完整的示例,包括服务端和客户端两部分,方便开发者快速集成到自己的项目中。 首先,我们来理解服务端部分——`WebServiceServerByAxis`。这部分主要展示了如何使用...
在这个示例中,WINFROM可能被用来创建一个本地用户界面,用户可以通过该界面触发Web Service调用,比如查询天气或火车信息。 4. **天气查询**: 这个功能通常涉及调用提供天气信息的Web Service,如OpenWeatherMap...
5. **调用Web Service**:使用Java客户端代理类的方法,传入参数,执行Web Service的远程调用。如果需要传递自定义类,确保这些类在Java和.NET中都有对应的序列化实现。 6. **处理响应**:Web Service调用完成后,...
**Apache Axis** 是一个用于构建 Web Service 的开源框架,提供了简单易用的方式来创建和部署 Web Service。Axis 支持多种版本,其中 Axis1.x 和 Axis2.x 最为常见,Axis1.x 相较之下更加稳定。 - **下载所需组件**...
总结一下,xFire作为一个早期的Web服务框架,帮助开发者简化了Web服务的开发和调用。通过理解服务的发布和调用过程,以及如何配置和使用`service.xml`文件,你可以有效地利用xFire实现跨系统间的通信。同时,提供的...
Hessian二进制Web服务协议(Hessian Binary Web Service Protocol)是一种高效的、轻量级的远程过程调用(RPC)协议,它主要用于提高Web服务之间的通信效率。Hessian由Caucho Technology公司开发,旨在解决XML-RPC在...
本讲堂重点探讨的是 Axis2,一个强大的Web Service框架,它是Apache软件基金会开发的第二代Web Service引擎。 一、什么是Axis2? Axis2是Apache Axis的升级版,它提供了更高效、更灵活的服务架构。Axis2基于模块化...
在标签中提到的“源码”可能意味着博客文章包含了调用BIEE Web服务的示例代码,而“工具”可能是指用于调用Web服务的开发工具或框架。由于这里没有具体的压缩文件列表,无法提供进一步的代码分析或示例。若需深入...
标签中的"Java"明确了编程语言,"web service"表示我们要处理的是基于HTTP协议的远程调用,而"axis"是实现这一目标的工具。Axis是Java Web服务栈的重要组成部分,它支持SOAP(Simple Object Access Protocol)和WSDL...
本文将通过一个具体的示例来展示如何使用Apache Axis开发Web服务。 #### 二、环境搭建 1. **Java SDK**: 需要安装J2SE SDK 1.3或1.4版本(建议使用1.4.2版本)。 2. **Servlet Container**: 使用Tomcat 5.0作为...
本示例将基于XFire库来创建一个简单的Web服务,展示如何在MyEclipse集成开发环境中快速构建、部署和测试一个“HelloWorld”Web服务。 1. **XFire简介** XFire是一个强大的Java SOAP框架,它提供了快速开发Web服务...
接下来,我们通过一个具体的客户端示例来演示如何使用Axis2进行WebService的调用。 ##### 1. 生成客户端代码 - 使用`wsdl2java.bat`脚本自动生成客户端代码。该脚本位于`axis2-1.4\bin`目录下,命令格式如下: ``...
这些类包含了调用Web Service所需的所有方法和数据类型。 3. 创建代理对象:在Java代码中,实例化生成的代理类对象,这将连接到.NET Web Service。 4. 调用服务方法:通过代理对象调用.NET Web Service的方法,...
当Java应用需要与一个以WSDL发布的Web服务交互时,它通常会使用一种名为“SOAP”(简单对象访问协议)的协议来发送和接收消息。 1. 使用Apache Axis调用远程Web服务 Apache Axis是一个流行的Java库,它允许开发者...