概述
本文介绍了一个比较简单实用的基于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 代码
- public class HelloWorld {
- public String sayHello()
- {
- return "HELLO WORLD!";
- }
- }
我们的第一种发布方式:
将HelloWorld.java拷贝到%TOMCAT_HOME%webappsaxis下,然后将其改名为HelloWorld.jws,这样AXIS就自然将其发布了.现在写个客户端程序访问一下:
TestClient.java
java 代码
- import org.apache.axis.client.Call;
- import org.apache.axis.client.Service;
-
- import javax.xml.rpc.ParameterMode;
-
- public class TestClient
- {
- public static void main(String [] args) throws Exception {
-
- String endpoint = "http://localhost:" +"8080"+ "/axis/HelloWorld.jws";//指明服务所在位置
-
- Service service = new Service();
- Call call = (Call) service.createCall();
-
- call.setTargetEndpointAddress( new java.net.URL(endpoint) );
-
- call.setOperationName( "sayHello" );
-
- String res = (String) call.invoke( new Object[] {} );
-
- System.out.println( res );
- }
- }
我们的第二种发布方式:
1、将HelloWorld.java编译成HelloWorld.class,放到%TOMCAT_HOME%webappsaxisWEB-INFclasses下
2、在%TOMCAT_HOME%webappsaxisWEB-INF下新建deploy.wsdd文件,即SOAP服务发布描述文件
deploy.wsdd
xml 代码
- <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
- <service name="HelloWorld" provider="java:RPC">
- <parameter name="className" value="HelloWorld"/>
- <parameter name="allowedMethods" value="sayHello"/>
- service>
- 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 代码
- import org.apache.axis.client.Call;
- import org.apache.axis.client.Service;
-
- public class HelloClient
- {
- public static void main(String [] args) throws Exception {
-
- String endpoint = "http://localhost:" +"8080"+ "/axis/services/HelloWorld";//注意!差别仅仅在这里!!
-
- Service service = new Service();
- Call call = (Call) service.createCall();
- call.setTargetEndpointAddress( new java.net.URL(endpoint) );
- call.setOperationName("sayHello" );
-
- String res = (String) call.invoke( new Object[] {} );
-
- System.out.println( res );
- }
- }
分享到:
相关推荐
用Axis开发基于Java的Web服务.docx
基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的...
作者简介:Ramesh Nagappan是Sun Java中心的Enterprise Java架构师,拥有13年的从业经验,擅长于设计和实现基于Java、XML和COBRA的分布式计算体系结构,可适用于Internet应用程序、企业消息交换和Web服务。...
用Axis开发基于Java的Web服务.doc AXIS实现Web服务深入篇.TXT AXIS学习笔记.txt WebService之axis的复杂对象传输方案.txt 使用Apache Axis部署 Web服务时的常见问题及其解决方法.txt 使用Axis开发Web Service程序....
java基于Axis2调用C#开发的web service获取xml结果
基于axis开发的java webservices Demo !可直接使用
一个完整的web项目 基于axis2的web服务开发 包含完整代码和文档以及操作指南 请勿随意转载上传 所用到的其他技术包括但不限于:java web、mysql、Axis2、Html5、CSS2等 所用到的工具包括但不限于:eclipse、 Photo...
这个文件是用java来开发webservice ,它基于axis的 值得大家学习一下
基于Tomcat5_0和Axis2开发Web Service应用实例,上面的例子简单实用
java基于AXIS平台下开发的在线调用天气服务。要求掌握WSDL,JAVA,AXIS的技术。
支持WSDL。...在EJB方面提供把EJB作为Web服务的访问途经。 基于Servlet的HTTP传输。 基于JMS的传输。 独立的服务器(但需要HTTP 服务器和Servlet容器支持)。 提供客户端、服务器端相关应用程序的样例。
支持开发 Axis2 的动力是探寻模块化更强、灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关 Web 服务标准和协议(如 WS-Security、WS-ReliableMessaging 等)的实现中。 Apache Axis2 是Axis...
基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...
基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...
j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...
j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...