`
alex8946
  • 浏览: 364610 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

用Axis开发基于Java的Web服务

    博客分类:
  • J2EE
阅读更多
概述
  本文介绍了一个比较简单实用的基于Java的SOAP引擎——Apache组织推出的Axis——的安装、配置和应用开发方法,希望对有兴趣做基于Java的Web Services应用开发的朋友有所帮助。
Axis简介
Axis是Apache组织推出的SOAP引擎,Axis项目是Apache组织著名的SOAP项目的后继项目,目前最新版本是采用Java开发的1.4版本,C++的版本正在开发之中。Axis v1.4软件包可以从http://apache.justdn.org/ws/axis/下载得到。
Axis的安装
应用Axis开发Web Services,你需要有一个支持Servlet的服务器引擎,比如广为人知的Tomcat。当安装好Tomcat之后,只需将下载的Axis软件包解压缩,将其中的“webapps”目录下的“axis”目录整个拷贝到Tomcat安装目录下的“webapps”目录下即可。
Axis的配置
Axis基于Java开发,可以部署于多种操作系统,使用前需要配置一系列的系统变量,在此假定你已经在本机上装好了Tomcat,需要配置的系统变量如下表所示:
AXIS_HOME 即axis解压的目录(我的是在D:JServeraxis-1_4)
AXIS_HOME=D:JServeraxis-1_4
AXIS_LIB=%AXIS_HOME%lib
AXISCLASSPATH=%AXIS_LIB%axis.jar;%AXIS_LIB%axis-ant.jar;%AXIS_LIB%commons-discovery-0.2.jar;%AXIS_LIB%commons-logging-1.0.4.jar;%AXIS_LIB%jaxrpc.jar;%AXIS_LIB%log4j-1.2.8.jar;%AXIS_LIB%saaj.jar;%AXIS_LIB%wsdl4j-1.5.1.jar;%AXIS_LIB%tools.jar;%AXIS_LIB%activation.jar;%AXIS_LIB%mail.jar;
如果你不愿做这么繁琐的类路径设置,可以直接将axis软件包中“lib”目录下的所有.jar文件加入到系统环境变量CLASSPATH中即可。
实验一下
在%AXIS_HOME%webapps下找到axis文件夹,需要加入三个包 activation.jar、mail.jar、tools.jar,然后将其整个拷贝到%TOMCAT_HOME%webapps下,
启动Tomcat,打开浏览器访问http://localhost:8080/axis/,出现以下页面说明你配置成功了

发布我们的第一个程序

第一个程序简单的返回HELLO WORLD!
HelloWorldjava

java 代码
  1. public class HelloWorld {   
  2. public String sayHello()   
  3. {   
  4. return "HELLO WORLD!";    
  5. }    
  6. }  

我们的第一种发布方式:

将HelloWorld.java拷贝到%TOMCAT_HOME%webappsaxis下,然后将其改名为HelloWorld.jws,这样AXIS就自然将其发布了.现在写个客户端程序访问一下:

TestClient.java

java 代码
  1. import org.apache.axis.client.Call;   
  2. import org.apache.axis.client.Service;   
  3.   
  4. import javax.xml.rpc.ParameterMode;   
  5.   
  6. public class TestClient   
  7. {   
  8. public static void main(String [] args) throws Exception {   
  9.   
  10. String endpoint = "http://localhost:" +"8080""/axis/HelloWorld.jws";//指明服务所在位置   
  11.   
  12. Service service = new Service(); //创建一个Service实例,注意是必须的!   
  13. Call call = (Call) service.createCall();//创建Call实例,也是必须的!   
  14.   
  15. call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置   
  16.   
  17. call.setOperationName( "sayHello" );//注意方法名与HelloWorld.java中一样!!   
  18.   
  19. String res = (String) call.invoke( new Object[] {} );//返回String,没有传入参数   
  20.   
  21. System.out.println( res );   
  22. }   
  23. }  

 

我们的第二种发布方式:

1、将HelloWorld.java编译成HelloWorld.class,放到%TOMCAT_HOME%webappsaxisWEB-INFclasses下

2、在%TOMCAT_HOME%webappsaxisWEB-INF下新建deploy.wsdd文件,即SOAP服务发布描述文件
deploy.wsdd

xml 代码
  1. <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
  2. <service name="HelloWorld" provider="java:RPC">  
  3. <parameter name="className" value="HelloWorld"/>  
  4. <parameter name="allowedMethods" value="sayHello"/>  
  5. service>  
  6. deployment>  

在DOS下转换目录到%TOMCAT_HOME%webappsaxisWEB-INF,命令:

java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://地址:端口/axis/services/AdminService deploy.wsdd

你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(当然,你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/servlet/AxisServlet,你就会看到你的服务已发布(如果使用Eclipse的话只需右键HelloWorld.java选择WebService,CreateWebService即可完成上面的所有工作)

同样用客户端程序访问一下:(注意和上边的差别!!)

HelloClient.java

java 代码
  1. import org.apache.axis.client.Call;   
  2. import org.apache.axis.client.Service;   
  3.   
  4. public class HelloClient   
  5. {   
  6. public static void main(String [] args) throws Exception {   
  7.   
  8. String endpoint = "http://localhost:" +"8080""/axis/services/HelloWorld";//注意!差别仅仅在这里!!   
  9.   
  10. Service service = new Service();   
  11. Call call = (Call) service.createCall();   
  12. call.setTargetEndpointAddress( new java.net.URL(endpoint) );   
  13. call.setOperationName("sayHello" );   
  14.   
  15. String res = (String) call.invoke( new Object[] {} );   
  16.   
  17. System.out.println( res );   
  18. }   
  19. }  
分享到:
评论

相关推荐

    用Axis开发基于Java的Web服务.docx

    本文将详细介绍如何利用Axis开发基于Java的Web服务。 ### Axis简介 Apache Axis是Apache SOAP项目的后续项目,它支持SOAP 1.1规范,并提供了Java和C++两个版本。在本文中,我们将关注Java版本的Axis 1.1。这个工具...

    基于java的开发源码-Web服务框架 Apache Axis.zip

    基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的...

    基于Axis开发Web服务

    Axis是一个开源项目,由Apache软件基金会维护,用于支持基于Java的SOAP Web服务的开发。它简化了开发过程,使开发者能够专注于业务逻辑而不是底层技术细节。Axis的主要组件包括传输监听器/传输发送器、Axis引擎、...

    AXIS开发的基于JAVA的webservice及客户端

    基于Java的AXIS使得开发者能够利用Java平台的强大功能来构建Web服务。在本篇博文中,我们将深入探讨AXIS如何帮助开发者在Java环境中实现Web服务的开发。 首先,Web服务是一种通过互联网进行通信的应用程序接口(API...

    java+axis简单开发

    Axis是基于Java的SOAP(Simple Object Access Protocol)实现,遵循SOAP 1.2和SOAP with Attachments规范。它被广泛应用于各种开发工具,如JBuilder和Eclipse的Lomboz插件。Axis 1.1是其当时最新的版本,提供了一个...

    基于java的Web服务框架 Apache Axis.zip

    总结,Apache Axis作为Java Web服务框架,提供了一整套构建、部署和管理Web服务的工具,极大地简化了Web服务的开发过程。无论是新手还是经验丰富的开发者,都能从中受益,快速实现Web服务的开发和集成。

    Java+Axis2调用Web Services 网络接口

    Java和Axis2是开发Web服务客户端的重要工具,用于调用基于SOAP协议的Web服务。本文将深入探讨如何利用Java和Axis2库来实现这一功能,同时结合提供的代码示例进行详细解析。 首先,Web服务是一种通过网络进行通信的...

    axis2 axis webservice web 服务

    Axis提供了基于Java的Web服务开发工具,使得开发者可以轻松地将Java类转换为Web服务。Axis的主要功能包括: - **自动WSDL生成**:可以从Java类自动生成WSDL文件,描述服务接口。 - **SOAP绑定**:直接将Java方法映射...

    基于Axis开发Web服务的研究

    ### 基于Axis开发Web服务的研究 #### 1. 引言 随着互联网技术的飞速发展,Web服务已经成为构建分布式系统的关键技术之一。它不仅支持跨平台、跨语言的应用程序开发,还成为了实现企业间业务流程整合的重要手段。在...

    基于Java的Web服务框架 Apache Axis.zip

    这个压缩包“基于Java的Web服务框架 Apache Axis.zip”很可能包含了Apache Axis的相关资料和库文件,使得用户可以快速地理解和使用这个框架。 Web服务是一种通过互联网交换数据的方式,它允许不同系统间的无缝通信...

    MyEclipse+Axis2插件开发Web服务

    Axis2是Apache软件基金会提供的一个开源Web服务框架,它基于Java语言,支持SOAP协议,并且具有轻量级、高性能等特点。Axis2不仅提供了强大的功能,如消息路由、事务处理、安全性和可靠性等,还提供了一整套开发工具...

    java基于Axis2调用C#开发的web service获取xml结果

    本主题将深入探讨如何使用Java的Axis2框架调用由C#开发的Web服务来获取XML结果。以下是相关知识点的详细解释: 1. **Web Service**: Web服务是一种通过HTTP协议进行通信的应用程序接口(API),允许不同系统间的...

    Java Web服务开发

    作者简介:Ramesh Nagappan是Sun Java中心的Enterprise Java架构师,拥有13年的从业经验,擅长于设计和实现基于Java、XML和COBRA的分布式计算体系结构,可适用于Internet应用程序、企业消息交换和Web服务。...

Global site tag (gtag.js) - Google Analytics