Axis开发Web Service的实例
### Axis开发Web Service的实例详解 #### 一、概述 在现代软件开发中,Web服务是一种重要的技术,它允许不同应用程序之间通过网络进行通信。Apache Axis是实现Web服务的一个流行框架,它支持SOAP协议,并提供了丰富的API来简化Web服务的开发过程。本文将通过一个具体的示例来展示如何使用Apache Axis开发Web服务。 #### 二、环境搭建 1. **Java SDK**: 需要安装J2SE SDK 1.3或1.4版本(建议使用1.4.2版本)。 2. **Servlet Container**: 使用Tomcat 5.0作为容器。 3. **Apache Axis**: 从官方网站(http://ws.apache.org/axis/)下载并解压Axis安装包。 - 将解压后的文件夹(例如:`Axis_UNZIP_PATH\Axis-version\webapps`)复制到Tomcat的webapps目录下,即`TOMCAT_HOME\webapps\`目录。 - 此时,可以将`TOMCAT_HOME\webapps\Axis`目录视为Axis的主目录(记为`Axis_HOME`)。 4. **启动Tomcat**: 确保能够访问`http://localhost:8080/Axis`页面,以确认Axis安装成功。 #### 三、示例代码分析 下面将详细介绍如何创建一个简单的Web服务,并通过不同的客户端调用该服务。 ##### 3.1 创建Web服务 1. **定义服务接口**: ```java public class HelloClient { public String getName(String name) { return "hello " + name; } } ``` 这里定义了一个简单的`HelloClient`类,其中包含一个`getName`方法,该方法接受一个字符串参数,并返回一个包含问候语的字符串。 2. **发布Web服务**: 将上述类发布为Web服务,通常需要将其部署到`Axis_HOME`目录下,并通过访问`http://localhost:8080/Axis/HelloClient.jws?wsdl`获取该服务的WSDL文件。 3. **测试服务**: 可以通过编写一个客户端程序来测试上述发布的Web服务。 ##### 3.2 动态调用接口 (Dynamic Invocation Interface, DII) 1. **客户端代码**: ```java import org.apache.axis.client.Call; import org.apache.axis.client.Service; import javax.xml.namespace.QName; import javax.xml.rpc.ServiceException; import java.net.MalformedURLException; import java.rmi.RemoteException; public class SayHelloClient2 { public static void main(String[] args) { try { String endpoint = "http://localhost:8080/Axis/HelloClient.jws"; Service service = new Service(); Call call = (Call) service.createCall(); call.setOperationName(new QName("http://localhost:8080/Axis/HelloClient.jws", "getName")); call.setTargetEndpointAddress(new java.net.URL(endpoint)); String ret = (String) call.invoke(new Object[]{"zhangsan"}); System.out.println("return value is " + ret); } catch (Exception ex) { ex.printStackTrace(); } } } ``` 上述代码演示了如何使用DII方式调用Web服务。客户端通过`Call`对象设置目标服务地址、操作名称等信息,并通过`invoke`方法传递参数并接收返回结果。 ##### 3.3 动态代理方式 (Dynamic Proxy) 1. **定义服务接口**: ```java public interface HelloClientInterface extends java.rmi.Remote { public String getName(String name) throws java.rmi.RemoteException; } ``` 2. **客户端代码**: ```java import javax.xml.rpc.Service; import javax.xml.rpc.ServiceFactory; import java.net.URL; import javax.xml.namespace.QName; public class TestHelloClient { public static void main(String[] args) { try { String wsdlUrl = "http://localhost:8080/Axis/HelloClient.jws?wsdl"; String nameSpaceUri = "http://localhost:8080/Axis/HelloClient"; Service service = ServiceFactory.newInstance().createService(new URL(wsdlUrl), new QName(nameSpaceUri, "HelloClient")); HelloClientInterface client = (HelloClientInterface) service.getPort(HelloClientInterface.class); String ret = client.getName("lisi"); System.out.println("return value is " + ret); } catch (Exception ex) { ex.printStackTrace(); } } } ``` 在动态代理方式中,首先通过WSDL文件创建`Service`对象,并使用`getPort`方法获取一个实现了服务接口的对象。然后,像调用本地方法一样调用远程方法。 #### 四、总结 本教程通过一个具体的示例详细介绍了如何使用Apache Axis开发Web服务。从环境搭建到实际代码实现,再到不同客户端的调用方式,希望这些内容能帮助读者更好地理解和掌握Apache Axis开发Web服务的方法。在未来的学习和实践中,还可以探索更多高级功能和技术细节,以满足更复杂的应用场景需求。
密 码 忘记密码
保存密码
黑皮哥 复制一个曾经讨厌自己的皮肤的人,再次喜欢上属于自己的那份黝黑.......
首页个人资料日志图片好友博客群详解怎样使用Axis开发Web Service的实例 分类:学习栏
贴一个关于用AXIS来开发Webservice 的一个不错的例子,也可以与大家一起分享之。。。。
****************************************************************
* 详解怎样使用Axis开发Web Service的实例 *
****************************************************************
一、Axis安装
1、环境 J2SE SDK 1.3 or 1.4: 我使用 1.4.2 Servlet Container: 我使用的Tomcat 5.0
2、到 http://ws.apache.org/Axis/网站下载Axis安装包
3、解压缩安装包,将Axis_UNZIP_PATH\Axis-version\webapps下的Axis包拷贝到TOMCAT_HOME\webapps\下,以下约定Axis_HOME为该TOMCAT_HOME\webapps\Axis目录
4、启动tomcat,访问http://localhost:8080/Axis 检查安装是否成功
5、以上步骤执行成功,可以开发webservice例子了
1、Dynamic Invocation Interface ( DII)
2、Stubs方式
3、Dynamic Proxy方式
二、编写DII(Dynamic Invocation Interface )方式web服务
1.编写服务端程序HelloClient
public class HelloClient
{
public String getName(String name)
{
return "hello "+name;
}
}
2、将源码拷贝到Axis_HOME下,重命名为 HelloClient.jws
3、访问连接http://localhost:8080/Axis/HelloClient.jws?wsdl,页面显示Axis自动生成的wsdl
剩余10页未读,继续阅读
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助