- 浏览: 58588 次
文章分类
最新评论
WebService Axis 快速开发
一、开发环境
•Myeclipse8.0
•Tomcat6.0
•Axis1.4
•Jdk1.6
Axis下载:
Google:”Axis”,很容易找到Apache Axis的链接地址:http://ws.apache.org/axis/,下载最新的1.4Final。
(好了准备工作做好了,现在我们来开发WebService!)
二、用Java 开发 WebService Axis简单实例
Axis支持三种WebService 的部署和开发,分别为:
1、Dynamic Invocation Interface(DII)方式
2、Dynamic Proxy方式
3、Stubs方式
Stubs方式是最通用的做法,又因其灵活的特点,所以我建议使用这种方式。下面,我主要讲述这种方式的开发。
1)创建Web工程
1、在Myeclipse上创建web工程,名为Test;
2、将jar包拷贝到WEB-INF/lib目录下;
2)编写wsdd发布web服务
1、在src目录下创建服务端程序HelloDateServer.java,包名为:
src/mypackage.server/HelloDateServer.java
在Tomact环境发布一个WebService 只需要写两个配置文件:
web.xml 、 server-config.wsdd
web.xml文件是用来声明Webserver的,即声明server-config.wsdd文件(我个人的理解)。
server-config.wsdd是Web服务的发布配置文件
web.xml文件很容易配置,拷贝axis包里面的WebService示例的web.xml配置到我们的工程中的web.xml中就可以了。
server-config.wsdd 文件是WebService的核心配置文件。Web服务能否发布,很大程度上取决于次文件的配置。可以说有了此文件,就有了Web服务。
有两种方式可以配置此文件:
1、手写;
2、用Axis工具生成。
我采用Axis工具生成(偷懒是其次,主要原因是不容易出错,也很容易开发)。
用Axis的工具,我们必须为Axis搭建一个环境,因为刚才我们下载下来的都是jar包,在windows下要想应用这下jar包,必须将其添加到系统的CLASSPATH中。否则系统无法找到这些功能。
将所有的jar包都添加到CLASSPATH;
创建环境变量,设置AXIS的环境变量.
编写deploy.wsdd文件
在任意路径下创建。我是在myeclipse工程中WEB-INF下创建的。部署时便于生成server-config.wsdd同时也便于工程修改时,修改此文件。
(简单吧!)
接下来就是生成server-config.wsdd文件!
生成server-config.wsdd配置文件
第一步:用Myeclipse部署Test工程并运行Tomcat
第二步:(关键的一步)打开命令与提示符,进入Test工程目录的WebRoot/WEB-INF目录下。
C:\>cd C:\apache-tomcat-6.0.20\webapps\Test\WEB-INF (我的Tomcat直接解压到c盘)
>java org.apache.axis.client.AdminClient –l http://localhost:8080/Test/services/stubs deploy.wsdd (这句话就是生成server-config.wsdd文件的命令,记住,保持Tomact是运行的,不然会报错!)
运行结果:
(Activation.jar 和 mail.jar这两个包我们没有加入到CLASSPATH中,但是不影响我们的开发。)在此路径下就生成了server-config.wsdd文件了。(哈,这就是我们想要的文件)
将其拷贝到我们的eclipse工程中,以便我们以后部署。
好了大功告成!WebService发布了。重启Tomcat
我们来测试一下,发布是否成功。
Myeclipse给我们提供了Soap工具。打开SOAP Web Services Explorer
然后点击WSDL Page
点击WSDL Main
输入URL:http://localhost:8080/Test/services/stubs?wsdl
接下来就可以测试了! 我按照刚刚写的代码,没有问题。
3)生成客户端client stub文件打开浏览器,输入http://localhost:8080/Test/services/stubs?wsdl点击文件->另存为。存到任何目录。我是存在C:\apache-tomcat-6.0.20\webapps\Test\WEB-INF 这样,我的命令提示符就不用换路径了。
stubs.xml重命名为stubs.wsdl
在命令提示符输入如下命令:
%Output_Path%是客户端文件输出路径,%Package%是包名。
将生成的client文件拷贝到myeclipse中。
接下来,在mypackage.client中添加客户端测试代码。
现在所有的都做完了。试试看吧。一定成功!
用Axis发布Web服务就这么简单。
我这个简单的Web服务的服务类方法的参数是简单的String类型。如果你的工程要求服务类方法传递自定义参数比如UserInfo等等,就需要你研究一下怎么传递自定义类型参数。其实也不难。可以参考http://blog.csdn.net/kay5804/archive/2008/05/04/2382428.aspx。这个人写的很不错!
刚打球回来,又做电脑旁边这么久,脖子疼,感觉自己得颈椎病了。
我要讲的就这么多,旨在,帮助大家快速入手Web Service。如果有什么问题,可以给我留言,有什么错误请指出。谢谢!
一、开发环境
•Myeclipse8.0
•Tomcat6.0
•Axis1.4
•Jdk1.6
Axis下载:
Google:”Axis”,很容易找到Apache Axis的链接地址:http://ws.apache.org/axis/,下载最新的1.4Final。
(好了准备工作做好了,现在我们来开发WebService!)
二、用Java 开发 WebService Axis简单实例
Axis支持三种WebService 的部署和开发,分别为:
1、Dynamic Invocation Interface(DII)方式
2、Dynamic Proxy方式
3、Stubs方式
Stubs方式是最通用的做法,又因其灵活的特点,所以我建议使用这种方式。下面,我主要讲述这种方式的开发。
1)创建Web工程
1、在Myeclipse上创建web工程,名为Test;
2、将jar包拷贝到WEB-INF/lib目录下;
2)编写wsdd发布web服务
1、在src目录下创建服务端程序HelloDateServer.java,包名为:
src/mypackage.server/HelloDateServer.java
- package mypackage.server;
- import java.util.Date;
- //WebService服务端类
- public class HelloDateServer {
- /**
- * 服务方法
- * @param yourName
- * @return
- */
- public String helloDate(String yourName){
- String rtStr = "Hello ,"+yourName+" ,it's: " + new Date();
- return rtStr;
- }
- //Add method here......
- }
package mypackage.server; import java.util.Date; //WebService服务端类 public class HelloDateServer { /** * 服务方法 * @param yourName * @return */ public String helloDate(String yourName){ String rtStr = "Hello ,"+yourName+" ,it's: " + new Date(); return rtStr; } //Add method here...... }
在Tomact环境发布一个WebService 只需要写两个配置文件:
web.xml 、 server-config.wsdd
web.xml文件是用来声明Webserver的,即声明server-config.wsdd文件(我个人的理解)。
server-config.wsdd是Web服务的发布配置文件
web.xml文件很容易配置,拷贝axis包里面的WebService示例的web.xml配置到我们的工程中的web.xml中就可以了。
- WEB-INF/web.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- <!-- =============== Axis Webservice =============-->
- <servlet>
- <servlet-name>AxisServlet</servlet-name>
- <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
- </servlet>
- <servlet>
- <servlet-name>AdminServlet</servlet-name>
- <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
- <load-on-startup>100</load-on-startup>
- </servlet>
- <servlet>
- <servlet-name>SOAPMonitorService</servlet-name>
- <servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class>
- <init-param>
- <param-name>SOAPMonitorPort</param-name>
- <param-value>5001</param-value>
- </init-param>
- <load-on-startup>100</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>/servlet/AxisServlet</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>*.jws</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>SOAPMonitorService</servlet-name>
- <url-pattern>/SOAPMonitor</url-pattern>
- </servlet-mapping>
- <mime-mapping>
- <extension>wsdl</extension>
- <mime-type>text/xml</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>xsd</extension>
- <mime-type>text/xml</mime-type>
- </mime-mapping>
- </web-app>
WEB-INF/web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- =============== Axis Webservice =============--> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet> <servlet-name>AdminServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> <load-on-startup>100</load-on-startup> </servlet> <servlet> <servlet-name>SOAPMonitorService</servlet-name> <servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class> <init-param> <param-name>SOAPMonitorPort</param-name> <param-value>5001</param-value> </init-param> <load-on-startup>100</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>SOAPMonitorService</servlet-name> <url-pattern>/SOAPMonitor</url-pattern> </servlet-mapping> <mime-mapping> <extension>wsdl</extension> <mime-type>text/xml</mime-type> </mime-mapping> <mime-mapping> <extension>xsd</extension> <mime-type>text/xml</mime-type> </mime-mapping> </web-app>
server-config.wsdd 文件是WebService的核心配置文件。Web服务能否发布,很大程度上取决于次文件的配置。可以说有了此文件,就有了Web服务。
有两种方式可以配置此文件:
1、手写;
2、用Axis工具生成。
我采用Axis工具生成(偷懒是其次,主要原因是不容易出错,也很容易开发)。
用Axis的工具,我们必须为Axis搭建一个环境,因为刚才我们下载下来的都是jar包,在windows下要想应用这下jar包,必须将其添加到系统的CLASSPATH中。否则系统无法找到这些功能。
将所有的jar包都添加到CLASSPATH;
创建环境变量,设置AXIS的环境变量.
- 变量名:AXIS_LIB
- 变量值:C:\axis-1_4\lib[color=red](我是直接将下载下来的包解压到C盘)[/color]
- 将以下变量值加入CLASSPATH
- %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 变量值:C:\axis-1_4\lib[color=red](我是直接将下载下来的包解压到C盘)[/color] 将以下变量值加入CLASSPATH %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;
编写deploy.wsdd文件
在任意路径下创建。我是在myeclipse工程中WEB-INF下创建的。部署时便于生成server-config.wsdd同时也便于工程修改时,修改此文件。
- <deployment xmlns="http://xml.apache.org/axis/wsdd/"
- xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
- <!-- 这里的stubs为wsdd描述符中的ServiceNamespace -->
- <service name="stubs" provider="java:RPC">
- <!-- 这里的ClassName就是我的服务类了,
- 这个服务主要功能就是传递一个自定义的对象 -->
- <parameter name="className" alue="mypackage.server.HelloDateServer " />
- <!-- 这里描术的意思是,此服务类中的方法全部享出来. value值为*号
- 如果你只想让你的客户端只能调用其中一个方法时,value值改为方法名就可以了. -->
- <parameter name="allowedMethods" value="*" />
- </service>
- </deployment>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- 这里的stubs为wsdd描述符中的ServiceNamespace --> <service name="stubs" provider="java:RPC"> <!-- 这里的ClassName就是我的服务类了, 这个服务主要功能就是传递一个自定义的对象 --> <parameter name="className" alue="mypackage.server.HelloDateServer " /> <!-- 这里描术的意思是,此服务类中的方法全部享出来. value值为*号 如果你只想让你的客户端只能调用其中一个方法时,value值改为方法名就可以了. --> <parameter name="allowedMethods" value="*" /> </service> </deployment>
(简单吧!)
接下来就是生成server-config.wsdd文件!
生成server-config.wsdd配置文件
第一步:用Myeclipse部署Test工程并运行Tomcat
第二步:(关键的一步)打开命令与提示符,进入Test工程目录的WebRoot/WEB-INF目录下。
C:\>cd C:\apache-tomcat-6.0.20\webapps\Test\WEB-INF (我的Tomcat直接解压到c盘)
>java org.apache.axis.client.AdminClient –l http://localhost:8080/Test/services/stubs deploy.wsdd (这句话就是生成server-config.wsdd文件的命令,记住,保持Tomact是运行的,不然会报错!)
运行结果:
- - Unable to find required classes (javax.activation.DataHandler and javax.mail.i
- nternet.MimeMultipart). Attachment support is disabled.
- Processing file deploy.wsdd
- <Admin>Done processing</Admin>
- Unable to find required classes (javax.activation.DataHandler and javax.mail.i nternet.MimeMultipart). Attachment support is disabled. Processing file deploy.wsdd <Admin>Done processing</Admin>
(Activation.jar 和 mail.jar这两个包我们没有加入到CLASSPATH中,但是不影响我们的开发。)在此路径下就生成了server-config.wsdd文件了。(哈,这就是我们想要的文件)
将其拷贝到我们的eclipse工程中,以便我们以后部署。
好了大功告成!WebService发布了。重启Tomcat
我们来测试一下,发布是否成功。
Myeclipse给我们提供了Soap工具。打开SOAP Web Services Explorer
然后点击WSDL Page
点击WSDL Main
输入URL:http://localhost:8080/Test/services/stubs?wsdl
接下来就可以测试了! 我按照刚刚写的代码,没有问题。
3)生成客户端client stub文件打开浏览器,输入http://localhost:8080/Test/services/stubs?wsdl点击文件->另存为。存到任何目录。我是存在C:\apache-tomcat-6.0.20\webapps\Test\WEB-INF 这样,我的命令提示符就不用换路径了。
stubs.xml重命名为stubs.wsdl
在命令提示符输入如下命令:
java org.apache.axis.wsdl.WSDL2Java –o ./ -p mypackage.client stubs.wsdl解释一下此命令:
java org.apache.axis.wsdl.WSDL2Java –o %Output_Path% -p %Package% stubs.wsdl
%Output_Path%是客户端文件输出路径,%Package%是包名。
将生成的client文件拷贝到myeclipse中。
接下来,在mypackage.client中添加客户端测试代码。
- src/mypackage/StubsClient.java
- package mypackage.client;
- import java.net.URL;
- public class StubsClient {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- // 定义的service和stub
- HelloDateServerService service = null;
- HelloDateServer stub = null;
- try {
- System.out.println("connect......");
- String StrPortAddress = "http://localhost:8080/Test/services/stubs";
- URL portAddress = new URL(StrPortAddress);
- // 得到客户端服务
- service = new HelloDateServerServiceLocator();
- // 得到客户端stub
- stub = service.getstubs(portAddress);
- // 测试服务方法
- String resultStr = stub.helloDate("Google");
- System.out.println(resultStr);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- System.out.println("End.");
- }
- }
- }
src/mypackage/StubsClient.java package mypackage.client; import java.net.URL; public class StubsClient { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // 定义的service和stub HelloDateServerService service = null; HelloDateServer stub = null; try { System.out.println("connect......"); String StrPortAddress = "http://localhost:8080/Test/services/stubs"; URL portAddress = new URL(StrPortAddress); // 得到客户端服务 service = new HelloDateServerServiceLocator(); // 得到客户端stub stub = service.getstubs(portAddress); // 测试服务方法 String resultStr = stub.helloDate("Google"); System.out.println(resultStr); } catch (Exception e) { e.printStackTrace(); } finally { System.out.println("End."); } } }
现在所有的都做完了。试试看吧。一定成功!
用Axis发布Web服务就这么简单。
我这个简单的Web服务的服务类方法的参数是简单的String类型。如果你的工程要求服务类方法传递自定义参数比如UserInfo等等,就需要你研究一下怎么传递自定义类型参数。其实也不难。可以参考http://blog.csdn.net/kay5804/archive/2008/05/04/2382428.aspx。这个人写的很不错!
刚打球回来,又做电脑旁边这么久,脖子疼,感觉自己得颈椎病了。
我要讲的就这么多,旨在,帮助大家快速入手Web Service。如果有什么问题,可以给我留言,有什么错误请指出。谢谢!
发表评论
-
刷新页面
2012-06-08 13:04 596一、request.setAttribute("re ... -
Servlet容器工作原理深入讲解
2012-04-21 17:23 739Servlet容器工作原理中,有两个Servlet容器,第一个 ... -
HTTP协议和web工作原理
2012-04-21 17:21 923本章学完之后能干什么?要把 知识点学好,那就需要把它相关的周边 ... -
如何清除tomcat缓存?
2012-04-18 19:33 1022用tomcat容器,大家可 ... -
Tomcat的JVM设置和连接数设置
2012-04-18 18:49 595一、Tomcat的JVM提示内存溢出 查看%TOMCAT_H ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2012-04-18 18:48 657PermGen space的全称是Permanent Gene ...
相关推荐
在本文中,我们将深入探讨如何使用SpringBoot框架开发基于Axis的Web服务。SpringBoot以其便捷的启动和配置方式,已经成为Java开发中的首选框架之一。而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供...
WebService是一种基于XML(eXtensible Markup Language)的开放标准,用于在不同应用...这对于进行跨平台的分布式系统开发是非常有帮助的,特别是在企业级应用集成和B2B通信中,WebService和Axis2扮演着重要的角色。
在"webservice之axis实例,axis复杂对象"这个主题中,我们将关注以下核心知识点: 1. **SOAP与WSDL**: SOAP是一种轻量级的消息协议,用于在Web上交换结构化的和类型化的信息。WSDL则是一种XML格式,用来描述Web...
1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...
Axis2是Apache软件基金会开发的一个高性能、灵活且可扩展的Web Service引擎,它是Apache SOAP项目的后续产品,主要用Java语言实现。 Axis2的核心功能包括: 1. **消息处理**:Axis2能够处理SOAP 1.1和1.2消息,...
eclipse axis webservice 开发 eclipse下使用axis2 开发webservice系统
【WebService的基础知识】 1.1 WebService的定义与作用 WebService是一种按照W3C标准设计的软件系统,旨在实现跨网络的机器间交互操作。...学习AXIS2有助于深入理解WebService开发,并能快速构建实际应用。
本资源集合了Axis进行Webservice开发所需的jar包,解决了开发者寻找这些依赖库的困扰。接下来,我们将详细讨论Axis、相关jar包以及它们在Web服务开发中的作用。 1. **Apache Axis**: Apache Axis是Apache软件基金会...
### IDEA 下开发 Webservice(Axis)的关键知识点 #### 一、概述 在现代软件开发过程中,Web服务(尤其是 SOAP 类型的服务)作为一种重要的组件模型,为不同应用间的交互提供了标准化的途径。本文将详细介绍如何在 ...
Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的Web服务解决方案。 **Web服务**是一种在互联网上不同系统间交换数据的方式,它允许应用程序之间通过标准协议进行通信。Web服务通常使用...
三、 Axis WebService开发步骤 1. **设置环境**:首先,确保你已经安装了Java SDK和Apache Axis。将Axis的bin目录添加到系统PATH环境变量中。 2. **创建Java类**:编写一个简单的Java类,包含你想公开为Web服务的...
WebService之Axis2实例是Web服务开发中的一个重要环节,它基于SOAP协议,允许不同平台和语言间的应用程序进行通信。本文将详细介绍Axis2实例的创建、配置和运行,以及如何利用Eclipse IDE、JDK 1.7和Tomcat 7.0进行...
总之,使用Apache Axis进行WebService开发是一种有效且灵活的方法,它简化了Java应用与Web服务的集成,使得开发者可以更加专注于业务逻辑的实现。通过理解上述步骤和概念,你可以快速搭建并部署自己的Web服务。
### WebService之Axis2经典教程 #### 一、概述 随着信息技术的发展,Web Service作为一种重要的分布式计算模式,已经成为实现服务导向架构(SOA)的关键技术之一。Axis2作为一款流行的Web Service引擎,不仅具备高...
WebService Axis是基于Java的Web服务框架,用于创建和部署SOAP(简单对象访问协议)服务。这个初学者指南将深入探讨Axis的基本概念、安装过程、创建第一个WebService以及如何进行调用。 1. WebService简介: ...
这个小Demo旨在帮助开发者理解并实践基于Axis的WebService开发过程。在本文中,我们将深入探讨WebService和Axis的相关概念,并通过分析提供的文件`webservicTest`来讲解如何运行这个Demo。 首先,让我们了解什么是...
【标题】"webservice之axis2方式开发总结" 在IT行业中,Web服务是不同系统间进行数据交换和功能调用的重要手段,而Axis2是Apache软件基金会提供的一个强大的Web服务框架,专门用于构建和部署Web服务。本篇将对基于...
标题中的“axis-1_4(bin)用axis进行webservice开发”表明了本文将围绕Axis 1.4版本,这是一个用于构建Web服务的开源工具,主要应用于Java平台。Axis允许开发者快速、简单地创建和部署Web服务,同时也支持消费其他Web...
标题中的“axis2+spring webservice”指的是使用Apache Axis2框架与Spring框架集成来开发Web服务。Apache Axis2是Java环境中广泛使用的Web服务引擎,它提供了高性能、灵活且可扩展的架构。Spring框架则是一个全面的...
要深入学习这个主题,可以参考博客“WebService:Axis客户端调用需要身份验证的CXF服务”。这个博客很可能详细解释了如何在实际代码中实现上述步骤,包括如何配置Axis客户端、如何处理认证头以及如何与CXF服务进行...