Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子
- 格式:pdf
- 大小:808.01 KB
- 文档页数:6
如何将基于Axis2的Web Service集成到自己的webapp本文主要描述如何使用Apache开源项目Axis提供的API来实现Web Services并集成到我们的应用程序当中。
本文的读者应有JAVA web 应用开发基础。
应该具有看过WSDL,SOAP,XML等的基本规范。
熟悉Eclipse+MyEclipse开发环境。
一、环境准备使用Axis来开发Web services 需要准备 web 服务器,Axis API。
本文使用的Web container 是Tomcat5.5, Axis API 采用版本2。
1.1软件下载准备Tomcat下载地址:/download-55.cgi#5.5.20Axis标准包:/ws/axis2/1_5_1/axis2-1.5.1-bin.zipAxis War包:/ws/axis2/1_5_1/axis2-1.5.1-war.zip Eclipse+MyEclipse:可以到官方网站下载(本文为3.3+6.5GA)1.2安装A.首先搭建开发环境,需要将下载到的Eclipse解压缩到一个目录。
B.安装MyEclipse6.5GA。
然后启动MyEclipse。
C.下面开始搭建Web Services的部署环境。
将下载的tomcat包解压缩到一个目录。
完成web container的安装。
E.将axis2.war包拷贝到tomcat安装目录下的webapps目录中。
F.启动Tomcat(windows 下为TOMCA_HOME/bin中的startup.bat;Linux,unix环境为startup.sh文件),打开浏览器输入并访问:http://ip:port/axis2来查看。
(如果没有进行配臵文件的修改此地址应该为http://localhost:8080/axis2),如果能看到下面的页面则说明已经安装完成。
二、Quick Start环境准备好后,先从一个简单的例子开始。
[图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端。
看过一本SOA的书中说,如果实现防止不同语言一些特定的数据类型的不兼容性,推荐先定义WSDL 接口,包括一输入输出参数、返回值及相关的数据类型等,再通过WSDL来生成服务器端和客户端,这样的好处是:服务端不用关心客户端怎么调用,客户端也不用关系服务端如何实现。
关于Eclipse中Axis2的配置方法,请看我的[图解教程] Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子,下面来新建一个WSDL文件,如下图:改个名字为“manager.wsdl”,如下图:下一步,定义命名空间和协议等信息,默认即行。
如下图:finish后,会在主工作区出现如下图:这是manager.wsdl的图形化形式,点击“Source”会可查看到源代码:这是默认生成的wsdl,我们要根据我们的项目需要,修改上面的图,首先对方法名进行修改,如下图:可见,修改之后,右边的input和output也跟着修改了,这两个就是定义plus的输入和输出。
点击input参数“plus”右边的提示箭头,进入下图:就在这里定义输入参数和和参数类型等信息,因为我们plus(float x, float y)方法中有两个参数x和y,故我们将上图改成两个参数的序列:变成下图,对比一下方法plus(float x, float y),下图也不会太难理解吧!我们返回manager.wsdl视图,选择output参数右边的箭头,进入下图:我们在这里设置float plus(float x, float y)方法的返回值及其类型,因其返回值只有一个,我们只须把上面的out的类型改成我们方法中用的float,改后,如下图:有没有注意到上图左上角有个图标,点击它,进入下图:我们可以在这里对输入输出的参数及其他数据类型进行修改,如果在上面的操作过程中,不小心产生了多余的标签的话,也可以在这里去除。
Axis2.x WebService上次介绍了axis1.x的用法,这次继续上次的,将叙述axis2的用法。
Axis1.x在线博文:/hoojo/archive/2010/12/20/1911349.html一、准备工作1、开发准备首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包。
下载地址:/axis2/java/core/download.cgi现在最高的版本是1.5.4的然后你需要下载官方提供的axis的eclipse插件工具,可以帮助我们打包(aar)及其生产客户端调用代码。
下载页面:/axis2/java/core/tools/index.htmlService Archive Wizard - Eclipse Plug-inCode Generator Wizard - Eclipse Plug-in2、安装eclipse插件如果你的eclipse插件安装成功后,会看到如下效果:3、分析axis2-bin文件目录结构下载下来的axis2的依赖库,其中有一个axis2-1.5.3-bin.zip的库文件,目录结构如下:bin文件夹是axis2的常用工具,其中有将wsdl文件转换成客户端调用的wsdl2java工具及将java转换成wsdl文件的工具conf是axis2的配置文件lib运行所要的依赖库repository是发布过的axis服务和文件sample是示例webapp是web文件和jsp页面等4、我们需要将下载下来的axis2-1.5.3-war.zip中的axis2.war这个文件放在我们的tomcat目录下,启动tomcat就会把war文件转成一个可以跑起来的axis2的项目。
Tomcat启动后,在浏览器中输入:http://localhost:8080/axis2/你可以看到二、Axis2的简单WebService示例注意,上面的HelloWorldService是没有package的。
一、准备工作。
1、首先下载eclipse用于开发WebService的相关插件。
该插件在eclipse站点有下。
我下的是包含该插件的全套eclipse的SDK:wtp-all-in-one-sdk-R-1.5.2-1841-win32.zip共210兆多。
A、解压该文件;B、安装自己插件,把插件用LINK目录建立关联。
(如:TOMCAT等)C、配置好自己的eclipse,这个不用多说了。
2、下载TOMCAT。
我用的是TOMCAT5.0.16。
3、下载最新的AXIS。
这非常重要。
我以前就是因为使用了旧版的AXIS (AXIS1。
1),最后导致生成的WEBSERVICE调用程序编译失败。
现在我使用AXIS1。
4A、解压AXIS,把axis-1_4\webapps\axis\WEB-INF\lib中的文件复制到$TOMCATHOME$\common\lib中。
二、开始开发WEBSERVICE。
1、首先NEW 一个 PROJECT。
WEB-》动态WEB PROJECT。
2、改变项目的输出路径为:项目名称/WebContent/WEB-INF/classes原来的为:项目名称/BUILD这样发布WEB 服务比较方便。
3、建立一个用于发布WEB服务的JAVA类。
public class HelloBean {public String sayHello(String name){return"hello:"+name;}}4、发布该类为WEB服务。
右击HelloBean.java->web services->create web services将左边筐拉到最上边(Test service)。
(以后可以立即测试该web services)其他不用多说。
往下。
直到出现需要启动TOMCAT的提示。
然后启动TOMCAT,系统自动把WEB SERVICE 发布到TOMCAT中。
按NEXT完成发布。
Axis2 教程文章分类:Java编程Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。
Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术。
这些都将在后面的系列教程中讲解。
在本文中主要介绍了如何使用Axis2开发一个不需要任何配置文件的WebService,并在客户端使用Java和C#调用这个WebService。
一、Axis2的下载和安装读者可以从如下的网址下载Axis2的最新版本:/axis2/在本文使用了目前Axis2的最新版本1.4.1。
读者可以下载如下两个zip包:axis2-1.4.1-bin.zipaxis2-1.4.1-war.zip其中axis2-1.4.1-bin.zip文件中包含了Axis2中所有的jar文件,axis2-1.4.1-war.zip文件用于将WebService发布到Web容器中。
将axis2-1.4.1-war.zip文件解压到相应的目录,将目录中的axis2.war文件放到<Tomcat安装目录>\webapps目录中(本文使用的Tomcat的版本是6.x),并启动Tomcat。
在浏览器地址栏中输入如下的URL:http://localhost:8080/axis2/如果在浏览器中显示出如图1所示的页面,则表示Axis2安装成功。
图1二、编写和发布WebService对于用Java实现的服务程序给人的印象就是需要进行大量的配置,不过这一点在Axis2中将被终结。
在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。
其中POJO中所有的public方法将被发布成WebService方法。
下面我们来实现一个简单的POJO,代码如下:public class SimpleService{public String getGreeting(String name){return "你好 " + name;}public int getPrice(){return new java.util.Random().nextInt(1000);}}在SimpleService类中有两个方法,由于这两个方法都是public方法,因此,它们都将作为WebService方法被发布。
•建立或者使用从WS-Security, WS-ReliableMessaging, WS-Addressing, WS-Coordination和WS-Atomic Transaction获取优势的服务•当新建议出现时,使用Axis2的模块化结构来很容易的加入对它的支持内部流程要理解Axis2并且知道它做了些什么,你必须对Web services消息的生命周期有一个很好的认识。
通常,它看起来如下图所示:发送应用程序建立原始SOAP消息,这是一个包含消息头和消息体的XML消息。
如果系统需要使用例如WS-Addressing或者WS-Security之类的WS*建议,这个消息就会在离开发送者之前经过额外的处理。
一旦消息准备好了,他就会借助一个特别的传输器发送出去,例如HTTP,JMS等等。
消息沿着它的路径发送到接收者,接收者是借助传输监听器接收消息的。
(换句话说,如果应用程序没有运行HTTP监听器,那么它就将不会接收HTTP消息)再者,如果消息是需要使用WS-Security 或者其它建议的系统的一部分,那么为了检查凭证或者解密敏感信息,它需要一些额外的处理。
最后,一个派发者决定这个消息发送到的指定应用程序(或者其它组件,例如Java方法),并且把它发送给这个组件。
这个组件是一个完整的应用程序的一部分,这个应用程序是设计用来与这些来回发送的数据一起工作的。
Axis2如何处理SOAP消息Axis2可以处理一次事务中的发送者和接收者双方的过程。
从Axis2的角度看,结构如下:在一端,你有一个处理(发送或接收)消息的应用程序。
在中间,你有Axis2,或者,你可以有Axis2。
Web services的价值在于收发双方(任何一方都可以是服务段或者客户端)甚至不需要在同一个平台上,更不需要运行同一个应用程序。
假设Axis2在两边同时运行,过程如下:•发送者建立SOAP消息。
•Axis "handlers" 执行必要的操作,例如对相关消息进行WS-Security加密。
使用axis2构建WebService服务以下文档将介绍是使用Tomcat6.0和Apache Axis2开发、部署和测试一个简单的WebService服务。
本文示例为最简单数据类型。
下一章将介绍复杂数据类型的传输。
WebService让一个程序可以透明地调用互联网程序,不管具体的实现细节。
只要WebService公开了服务接口,远程客户端就可以调用服务。
WebService是基于http协议的组建服务,WebService是分散式应用程序的发展趋势。
1.工作环境MyEclipse6.0.1 + JDK1.6 + Axis2-1.3其中Axis2-1.3需要下载Binary Distribution和WAR这两个文件。
目前Axis2的最高版本已到达1.5.2.安装Axis2将下载的Axis2-1.3 W AR文件解压缩,得到axis2.war文件。
将其拷贝到%Tomcat安装目录%webapps下即可。
3.检验安装启动(或重新启动)Tomcat,在地址栏中输入:http://localhost:8080/axis2点击Validate,显示Axis2 Happiness Page4.WebService中的服务器端(1)新建Java工程(2)新建服务器类,建立Hello.javapackage cn.hxyh.webservice;public class Hello {public String getHello() {System.out.println("Hello Service received");return"Hello world!" ;}}(3)在./bin下建立META-INF目录,新建service.xml文件<service name="Hello"><Description>helloword example description</Description><parameter name="ServiceClass"locked="false">cn.hxyh.webservice.Hello</parameter><operation name="getHello"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /></operation></service>(4)打包生成aar文件在命令符环境下,将目录转到./bin。
使用axis2进行WebService的开发使用axis2进行WebService的开发Apache Axis2 是Apache Axis SOAP 项目的后继项目。
此项目是Web 服务核心引擎的重要改进,目标是成为Web 服务和面向服务的体系结构(Service-Oriented Architecture,SOA)的下一代平台。
axis2 WebService开发分为服务端开发与客户端开发,服务端开发为对外提供服务,客户端开发为用户调用外部接口进行业务处理。
一、下载与安装1.下载下载地址:/axis2/java/core/download.cgi有以下下载列表:Binary Distribution zip | MD5 | PGPSource Distribution zip | MD5 | PGPWAR Distribution zip | MD5 | PGPDocuments Distribution zip | MD5 | PGP注:axis2-1.6.2-bin.zip里有axis2的jar包。
axis2-1.6.2-docs.zip里有详细的帮助文档。
axis2-1.6.2-src.zip里是源代码。
axis2-1.6.2-war.zip里是axis的管理平台,放到tomcat可直接使用。
注:本文用bin包进行命令行使用axis2,管理平台使用的是war包。
2.安装配置将axis2-1.6.2-bin.zip解压到本地目录D:\axis2-1.6.2设置环境变量。
【注:前提需要配置java环境变量】AXIS2_HOME 设置值D:\axis2-1.6.2Path 添加值%AXIS2_HOME%\bin二、服务端编写1.创建服务端的java项目testAsixServer。
编写类City与类User代码如下:[java] view plain copy package com.hsinghsu.model; public class City { private int cityCode;private String cityName; public int getCityCode() { return cityCode; } public void setCityCode(int cityCode) { this.cityCode = cityCode; } public String getCityName() { return cityName; } public void setCityName(String cityName){ this.cityName = cityName; } } [java] view plain copy package com.hsinghsu.model; public class User { private int id; private String name; private String password;private City city; public int getId(){ return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name){ = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public City getCity(){ return city; } public void setCity(City city) { this.city =city; } }编写服务类UserService。
使用Axis+Eclipse开发webservice什么是webservice?从架构师的角度来理解:webservice是一个软件系统,为了支持跨网络的机器间相互操作交互而设计。
Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务。
从一个程序员的视角来理解:在传统的程序编码中,存在这各种的函数方法调用。
通常,我们知道一个程序模块M中的方法A,向其发出调用请求,并传入A方法需要的参数P,方法A执行完毕后,返回处理结果R。
这种函数或方法调用通常发生在同一台机器上的同一程序语言环境下。
现在的我们需要一种能够在不同计算机间的不同语言编写的应用程序系统中,通过网络通讯实现函数和方法调用的能力,而Web service正是应这种需求而诞生的。
简单来说,webservice就是一个网络组件,一个可以通过网络访问的程序。
Webservice、WSDL、SOAP的关系Web Service = SOAP + HTTP + WSDL。
其中,SOAP Simple Object Access Protocol)协议是web service的主体,它通过HTTP或者SMTP等应用层协议进行通讯,自身使用XML 文件来描述程序的函数方法和参数信息,从而完成不同主机的异构系统间的计算服务处理。
这里的WSDL(Web Services Description Language)web 服务描述语言也是一个XML文档,它通过HTTP向公众发布,公告客户端程序关于某个具体的Web service服务的URL信息、方法的命名,参数,返回值等。
Webservice服务器端工作流程监听网络端口(监听服务端口)接收客户端请求(接收SOAP请求)解析客户端请求(解析SOAP消息,将SOAP消息转换为数据对象)调用业务逻辑(调用Web Service实现类的特定操作,参数是由SOAP消息转换而来的数据对象)生成响应(将返回值转换为SOAP消息)返回响应(返回SOAP响应)Webservice客户端工作流程构造SOAP请求消息(将本地数据对象转换为SOAP消息)发送SOAP消息到Web Service服务器的指定端口接收SOAP响应消息将SOAP响应消息转换为本地数据对象以上知识点参考了互联网上的相关信息以帮助理解开发原理,读者想要详细学习wsdl 和soap的话,可到w3cschool网站查阅相关资料。
这段时间工作中需要使用webservice开发,所以再加进学习.看了不少网上的教程,特别符合的不多,自己弄了两天,进行下总结.我的环境:myeclipse8,tomcat,axis1.x(具体我也不清楚,写的是1.5,打开时1.4)好,废话不多说,开始!1.安装axis的eclipse插件.1.1 下载axis插件,具体地址记不住了,需要的朋友附件中有,包括a).axis2-eclipse-codegen-wizard.zipb).axis2-eclipse-service-archiver-wizard.zip当然还需要axis的包,axis2-1.5.1-bin.zip,axis2-1.5-war.zip(这个部署的时候有用)1.2 安装1.2.1 把刚才下的两个插件包解压后放置myeclipse8安装目录下的dropins文件夹中.1.2.2 在axis2-eclipse-codegen-wizard的lib文件夹中加入geronimo-stax-api_1.0_spec-1.0.1.jar和backport-util-concurrent-3.1.jar文件,并修改该目录中的plugin.xml文件,加入如下两行Xml代码1.<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">2.<export name="*"/>3.</library>4.<library name="lib/backport-util-concurrent-3.1.jar">5.<export name="*"/>6.</library>(因为目前似乎这个axis的插件经常出问题,不加以上两个jar文件的话会出现客户端生成最后一步报错的问题)好了,插件安装完成,这里需要注意的是,安装插件的过程中请关闭myeclipse8,否则服务端生成插件又会出问题,就是出现使用插件过程中点击next按钮后,面板上什么都没有了,不过没关系,出现这样的情况的话,请先删除刚才安装的两个插件,然后启动myeclipse8,然后再关闭后,考入两个插件,再启动就OK了(我也初学者,可能这个问题有更好的办法解决,只是目前我这么处理的,有经验的朋友可以多多指点,谢谢.2.开发服务端在这个例子中,我们也就采用老掉牙的例子,hello world吧,多好理解的,服务端的目的提供一个sayhello的方法,需要传入一个name的参数,然后返回,hello world! name,好了,废话又多了,做事情.2.1 新建web工程,名字就叫Hello吧,然后建立如下HelloServer,代码如下:Java代码1.package server;2.public class HelloServer {3. public String sayHello(String name){4. return "Hello! "+name;5. }6.}(够简单吧,应该好理解哈!)2.2 根据HelloServer.java新建wsdl此步骤可跳过,主要是说明一下插件的功能,其实生成wsdl可以在部署服务端后,通过地址栏访问得到.右键工程-->新建-->其他-->Axis2 Wizards-->Axis2 Code Generator如图所示一步一步的:然后点击完成,OK了,在src目录下应该可以看到HelloWorld.wsdl 哈.3 部署服务端3.1 建立服务目录刚才下的axis2-1.5-war.zip文件,解压,有axis2.war文件,再解压,复制axis2\WEB-INF\下的modules,conf,services三个目录到Hello工程下的WEB-INF目录下.3.2 打包并部署右键工程-->新建-->其他-->Axis2 Wizards-->Axis2 Service Archiver如图所示一步一步的:(请注意图片中的路径位置)单击Finish完成,好了,刷新一下项目,可以看到结构图如下.可以看到在services目录下多了我们添加的SayHelloService.arr包.3.3 编辑web.xml加入如下代码Xml代码1.<servlet>2.<servlet-name>AxisServlet</servlet-name>3.<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>4.<load-on-startup>1</load-on-startup>5.</servlet>6.<servlet-mapping>7.<servlet-name>AxisServlet</servlet-name>8.<url-pattern>/services/*</url-pattern>9.</servlet-mapping>3.4 解压刚才下载的axis2-1.5.1-bin.zip,然后复制lib下所有jar文件到该工程中.好了,部署项目,启动tomcat,然后访问 http://localhost:8080/Hello/services/HelloServer_Service?wsdl。
一、Axis2简介1.1 介绍Axis2Axis框架来自Apache 开放源代码组织,它是基于JAVA语言的最新的SOAP 规范(SOAP 1.2)和SOAP withAttachments 规范(来自Apache Group )的开放源代码实现。
有很多流行的开发工具都使用AXIS作为其实现支持Web服务的功能,例如JBuilder以及著名的Eclipse J2EE插件Lomboz。
AXIS的最新版本可以从/axis/index.html下载。
下载下来后直接解压即可用了。
下图是AXIS核心引擎的体系结构图:整个AXIS项目包括以下几个部分:ü消息流子系统消息流子系统提供了灵活的消息传递框架,这个消息传递框架包括处理程序、链、序列化程序和反序列化程序。
处理程序是一个处理请求、响应和故障流的对象。
处理程序可被组合在一起成为链,而且可以使用一个灵活的部署描述符来配置这些处理程序的顺序。
ü传输框架子系统提供了一个传输框架,这个传输框架可以帮助您创建自己的可插式传输发送器和传输侦听器。
ü数据编码子系统AXIS完全按照XML Schema 规范提供各种数据类型的自动序列化,并且提供功能扩展接口来使用您自己定制的序列化器和反序列化器。
ü其他AXIS完全支持WSDL 以及日志记录、出错以及故障处理机制。
它同时提供一些工具用来讲WSDL文档转换成客户端的调用框架以及根据类来产生WSDL定义文档。
AXIS目前版本支持的标准是:W3C SOAP1.1 和1.2;WSDL 1.1;SAAJ 1.1(SUN公司:SOAP with Attachments API for Java);JAX-RPC(SUN公司:Java APIfor XML-Based RPC)1.0。
1.2 开发项目中如何选择使用Axis2和其它的WebService²如果你的应用程序需要支持多语言即有C++, .net, Java,你应该选择Axis2。
Axis的简单准备Axis的入门实例Axis复杂对象类型的WebServiceAxis的辅助工具发布、调用WebServiceAxis WebService会话Session的管理Axis用控制台Dos命令发布WebServiceAxis跨多个WebService管理SessionAxis用Spring的JavaBean发布WebServiceAxis异步调用WebServiceAxis 的Module模块Axis使用SoapMonitar监视WebService的请求和响应信息Version1.0 2011-03-15Axis2.x WebService上次介绍了axis1.x的用法,这次继续上次的,将叙述axis2的用法。
Axis1.x在线博文::///hoojo/archive/2010/12/20/1911349.html一、准备工作1、开发准备首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包。
下载地址::///axis2/java/core/download.cgi现在最高的版本是1.5.4的然后你需要下载官方提供的axis的eclipse插件工具,可以帮助我们打包(aar)及其生产客户端调用代码。
下载页面::///axis2/java/core/tools/index.html Service Archive Wizard - Eclipse Plug-inCode Generator Wizard - Eclipse Plug-in2、安装eclipse插件如果你的eclipse插件安装成功后,会看到如下效果:3、分析axis2-bin文件目录结构下载下来的axis2的依赖库,其中有一个axis2-1.5.3-bin.zip的库文件,目录结构如下:bin文件夹是axis2的常用工具,其中有将wsdl文件转换成客户端调用的wsdl2java工具及将java转换成wsdl文件的工具conf是axis2的配置文件lib运行所要的依赖库repository是发布过的axis服务和文件sample是示例webapp是web文件和jsp页面等4、我们需要将下载下来的axis2-1.5.3-war.zip中的axis2.war这个文件放在我们的tomcat目录下,启动tomcat就会把war文件转成一个可以跑起来的axis2的项目。
快速上手指南 - 基于Eclipse Axis2 插件的Web Service开发[最新]【优秀】(文档可以直接使用,也可根据实际需要修订后使用,可编辑推荐下载)axis2创建web service(一)axis2 是新一代的web service开发工具,它会让你的web service开发变得轻松,快捷。
下面让我们以一个实际的例子来体验一下。
首先,工欲善其事,必先利其器。
就让我们先做好一些必备的准备工作吧。
1.下载axis2 的2进制的包和war,现在的最新版本是发布时间是2021-8-25地址分别是:2.把下载后的war放入tomcat的webapps目录里,然后启动tomcat,这样war包就会自动解压为目录axis2在浏览器中输入 ://localhost:8080/axis2/,如果一切正常你会看到下面的画面3,就开始准备一下axis2的eclispe的插件了。
axis2的eclispe插件分为2个,一个是帮助我们生成aar文件的,另一个是帮我们用wsdl文件生成stub代码的。
下载地址是下载完2个压缩文件后,可以直接把解压后的文件拷贝到plugins目录中,也可以在links目录中写文件路径的方式来安装插件,安装完插件后,打开eclipse,在package explorer 中点击右键--->选择new---->other如果安装正确你会看到这样准备工作就都做好了。
接下来就是正式开发了。
axis2创建web service(二)工具都已经准备齐全了。
我们来动手做一个小例子来小试牛刀!这一节我们先利用axis2来发布一个web service 的服务,然后在下一节我们做一客户端来调用这个服务。
我们的服务很简单的,就是输入一个字符串,然后打印出一段字符串。
代码很简单,主要是测试用。
Java代码1.2.3.public class SimpleServer {4.5. /**6. * 简单的测试方法7. *8. */9. public String simpleMethod(String name) {10. return name + "Say this is a Simple method ^-^";11. }12.13.}主要的过程就是如何利用axis2的eclispe插件来发布这个服务啦。
一.在Eclipse中配置Axis2插件。
1.下载Axis2插件(Axis2官网:/axis2/java/core/download.html)2. 配置Eclipse Axis2插件把axis2-eclipse-codegen-plugin-1.7.1.zip和axis2-eclipse-service-plugin-1.7.1.zip文件里面的jar文件解压出来,放到eclipse目录下的dropins文件夹下,并新建一个txt文件,写入dropins目录的绝对路径,保存后更改文件格式为.link。
重启Eclipse,然后点击File-> New->Other->Axis2 Wizards即可看到axis2功能是否配置成功。
二.用Eclipse开发Axis2服务端1.解压axis2-1.7.1-bin.zip和axis2-1.7.1-war.zip文件,axis2-1.7.1-bin的解压文件夹随便放在一个目录下即可,axis2-1.7.1-war解压后的axis2.war文件放在tomcat目录的webapp文件夹下。
启动tomcat并输入http://localhost:8080/axis2即可看到如下画面。
2.新建Java Project,目录如下图所示(该示例主要展示了如何把配置文件也打包进aar文件),把axis2-1.7.1-bin的lib目录下的全部.jar文件(其实这些包是给客户端使用的,而且只需要其中一部分即可,为了方便才全部复制)全部复制到lib目录下,然后build path进项目中,建立如下文件:com.axis.server包下的文件AxisServer.java和User.java;resources 包下的文件application.properties。
3.生成aar文件:File->New->Other->Axis2 Wizards->Axis2 Service Archiver,并按下图流程进行即可生成aar文件。
一、准备工作1.下载axis2相关jar包目前最新版本为 1.6.2;将axis2-1.6.2-bin.rar,axis2-1.6.2-war.zip一并下载下来,下载地址:/axis2/java/core/download.cgi2.下载axis2插件:axis2-eclipse-codegen-plugin-1.6.2.zip、axis2-eclipse-serv ice-plugin-1.6.2.zip,下载地址:/axis2/jav a/core/tools/index.html3安装Eclipse插件,安装成功如下图:5.新建Web Project(axis2_Serv ice)将axis2-1.6.2-bin\lib下的jar拷贝到axis2_Serv ice\lib下,打开axis2-1.6.2-war.zip\axis2\WEB-INF下的conf、modules、services 解压到项目(axis2_Serv ice)WebRoot\WEB-INF下6.修改web.xml文件,添加如下代码:7.添加两个类:bean类和服务类Bean类:package .zjl.entity;import java.io.Serializable;public class User implements Serializable{/****/private static final long serialVersionUID = 1L;private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}}要发布的服务类:package .zjl.service;import er;public class UserService {public User getUser(User user) {System.out.println("service:"+user.getId());System.out.println("service:"+user.getName());User po2 = new User();po2.setId(1);po2.setName("zjl");return po2;}}8.Axis2插件工具生成aar文件,发布WebService在项目上右击->new->other选择Axis2 Serv ice Archiv er,点击nextClass File Location选择工程路径下的classes文件,点击Next勾选Skip WSDL项,点击next这里没有jar文件,所以默认,点击Next勾选Generate the serv ice xml automatically项,点击NextServ ice Name 随便写记住就行,Class name包名点类名称点击Load会出现这个类下的所有方法名称,点击NextOutput location选择输出文件位置(具体位置根据具体而定),点击Finsh说明成功。
Web Project项目整合Axis2网上的教程全都是生成了.aar文件后,复制到axis2\WEB-INF\services\下面,这样给人的感觉就是自己的服务还得靠Axis2.war包才能运行,这不扯蛋吗?这里教大家把Webservice 发布到自己的项目中。
1.下载Axis2.war ,复制web-inf/services目录到自己的项目WEB-INF下,2.打开Myeclipse 新建一个web Project复制Axis2.war 包下的所有JAR包到项目lib目录下。
3.在项目的WEB.XML 中添加如下配置<!-- Axis2配置--><servlet><servlet-name>AxisServlet</servlet-name><servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet><servlet-name>AxisAdminServlet</servlet-name><servlet-class>org.apache.axis2.webapp.AxisAdminServlet</servlet-class></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>AxisAdminServlet</servlet-name><url-pattern>/axis2-admin/*</url-pattern></servlet-mapping><mime-mapping><extension>inc</extension><mime-type>text/plain</mime-type> </mime-mapping>4.编写Webservice 服务端类5.发布服务右击-新建-other点击下一步这里选择编译后的Class目录,工作空间下的项目编译目录,点击下一步。
用Axis2开发Web Service及客户端在《使用Eclipse的Axis1.4插件开发Web Service及客户端》介绍的Axis是用的Axis1.x,而Axis2是改进版本,进行了重新的设计,应该是Axis的第二代,本文介绍Axis2的使用方法。
/axis2/是Axis2的主页,写这篇文章的时候最新版本是1.5,从/axis2/download/1_5/download.cgi下载axis2-1.5-bin.zip、axis2-1.5-war.zip。
axis2-1.5-war.zip是web发布版本,可以在网页上进行Web Service的动态部署,提供Web Service服务。
解压缩后把axis2.war放到tomcat的webapps下面,启动tomcat,在网页中输入http://localhost:8080/axis2(取决于tomcat的设置)就可以进行操作了。
这方面的资料很多,就不详细介绍了。
下面介绍使用Eclipse插件开发的方法,环境与《使用Eclipse的Axis1.4插件开发Web Service及客户端》的相同。
启动Eclipse后,首先设置Axis2的主目录,需要先解压缩axis2-1.5-bin.zip,然后把解压缩之后的路径填入Eclipse的Window|Preferences|Web Services|Axis2 Preferences的界面上,如下图所示:图1在Eclipse中设置Axis2的runtime建立一个简单的类:package demo.axis; public class User{public String sayHello(String userName){return "hello " + userName;}}把这个类发布为Web Service的步骤与《使用Eclipse 的Axis1.4插件开发Web Service及客户端》中的相同,只是要注意选择Axis2,生成之后的目录结构是:图2生成Web Service后的目录结构但生成之后的项目中缺少.jar文件,可以把%AXIS2-HOME%/lib下的所有文件复制到项目的WEB-INF/lib下面,部署到tomcat就可以运行了,在浏览器中输入http://localhost:8080/Axis2ServerDemo/services/User?wsd l就可以看到发布的Web Service的wsdl了。
Web Service学习之axis看着网上的资料学习了一下,做点笔记以防以后忘记。
一、准备工作:到axis官方网站下载相应的jar包,我下的是1.4final版。
/axis/二、建立项目:直接在MyEclipse中建立了一个web项目。
将相应的jar包拷贝到lib文件夹下三、创建一个WebService服务直接创建一个类HelloClient.javaJava代码1.package com;2.3.public class HelloServer {4. public String sayHello(String name) {5. return "Hello " + name;6. }7.}axis支持两种方式创建,一种是将编写好的java文件改为*.jws文件。
个人觉得这样不好,所以就用另外一种,采用在server-config.xml文件中配置的方式。
注意:该文件位置为WEB-INF目录下Xml代码1.<?xml version="1.0"encoding="UTF-8"?>2.<deployment xmlns="/axis/wsdd/"3.xmlns:java="/axis/wsdd/providers/java">4.<globalConfiguration>5.<parameter name="adminPassword"value="admin"/>6.<parameter name="enableNamespacePrefixOptimization"7.value="false"/>8.<parameter name="dotNetSoapEncFix"value="true"/>9.<parameter name="disablePrettyXML"value="true"/>10. <parameter name="sendMultiRefs"value="true"/>11. <parameter name="sendXsiTypes"value="true"/>12. <parameter name="attachments.implementation"13. value="org.apache.axis.attachments.AttachmentsImpl"/>14. <parameter name="sendXMLDeclaration"value="true"/>15.16. <requestFlow>17. <handler type="java:org.apache.axis.handlers.JWSHandler">18. <parameter name="scope"value="session"/>19. </handler>20. <handler type="java:org.apache.axis.handlers.JWSHandler">21. <parameter name="scope"value="request"/>22. <parameter name="extension"value=".jwr"/>23. </handler>24. </requestFlow>25. </globalConfiguration>26.27. <handler name="LocalResponder"28. type="java:org.apache.axis.transport.local.LocalResponder"/>29. <handler name="URLMapper"30. type="java:org.apache.axis.handlers.http.URLMapper"/>31. <handler name="Authenticate"32. type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>33.34. <service name="AdminService"provider="java:MSG">35. <parameter name="allowedMethods"value="AdminService"/>36. <parameter name="enableRemoteAdmin"value="false"/>37. <parameter name="className"value="org.apache.axis.utils.Admin"/>38. <namespace>/axis/wsdd/</namespace>39. </service>40.41. <service name="Version"provider="java:RPC">42. <parameter name="allowedMethods"value="getVersion"/>43. <parameter name="className"value="org.apache.axis.Version"/>44. </service>45. <SPAN style="COLOR: #ff0000"><service name="HelloServer"provider="java:RPC">46. <parameter name="allowedMethods"value="*"/>47. <parameter name="className"value="com.HelloServer"/>48. </service></SPAN>49.50. <transport name="http">51. <requestFlow>52. <handler type="URLMapper"/>53. <handler54. type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>55. </requestFlow>56. <parameter name="qs:list"57. value="org.apache.axis.transport.http.QSListHandler"/>58. <parameter name="qs:wsdl"59. value="org.apache.axis.transport.http.QSWSDLHandler"/>60. <parameter name="qs:method"61. value="org.apache.axis.transport.http.QSMethodHandler"/>62. </transport>63.64. <transport name="local">65. <responseFlow>66. <handler type="LocalResponder"/>67. </responseFlow>68. </transport>69.</deployment>web.xml文件中的配置如下Xml代码1.<?xml version="1.0"encoding="UTF-8"?>2.<web-app version="2.5"xmlns="/xml/ns/javaee"3.xmlns:xsi="/2001/XMLSchema-instance"4.xsi:schemaLocation="/xml/ns/javaee5. /xml/ns/javaee/web-app_2_5.xsd">6.<listener>7.<listener-class>8. org.apache.axis.transport.http.AxisHTTPSessionListener9.</listener-class>10. </listener>11.12. <servlet>13. <servlet-name>AxisServlet</servlet-name>14. <display-name>Apache-Axis Servlet</display-name>15. <servlet-class>16. org.apache.axis.transport.http.AxisServlet17. </servlet-class>18. </servlet>19.20. <servlet>21. <servlet-name>AdminServlet</servlet-name>22. <display-name>Axis Admin Servlet</display-name>23. <servlet-class>24. org.apache.axis.transport.http.AdminServlet25. </servlet-class>26. <load-on-startup>100</load-on-startup>27. </servlet>28.29. <servlet>30. <servlet-name>SOAPMonitorService</servlet-name>31. <display-name>SOAPMonitorService</display-name>32. <servlet-class>33. org.apache.axis.monitor.SOAPMonitorService34. </servlet-class>35. <init-param>36. <param-name>SOAPMonitorPort</param-name>37. <param-value>5001</param-value>38. </init-param>39. <load-on-startup>100</load-on-startup>40. </servlet>41.42. <servlet-mapping>43. <servlet-name>AxisServlet</servlet-name>44. <url-pattern>/servlet/AxisServlet</url-pattern>45. </servlet-mapping>47. <servlet-mapping>48. <servlet-name>AxisServlet</servlet-name>49. <url-pattern>*.jws</url-pattern>50. </servlet-mapping>51.52. <servlet-mapping>53. <servlet-name>AxisServlet</servlet-name>54. <url-pattern>/services/*</url-pattern>55. </servlet-mapping>56.57. <servlet-mapping>58. <servlet-name>SOAPMonitorService</servlet-name>59. <url-pattern>/SOAPMonitor</url-pattern>60. </servlet-mapping>61. <welcome-file-list>62. <welcome-file>index.jsp</welcome-file>63. </welcome-file-list>64.</web-app>四、部署启动tomcat:在浏览器地址栏输入http://localhost:8080/axisWebServiceServer/services可以看到已有的WebServicehttp://localhost:8080/axisWebServiceServer/services/HelloServer?wsdl 可以看到自己写的WebService五、测试调用WebServiceJava代码1.package com;2.3.import .MalformedURLException;4.import java.rmi.RemoteException;5.6.import javax.xml.rpc.ServiceException;7.8.import org.apache.axis.client.Call;9.import org.apache.axis.client.Service;11.public class HelloClient {12.13. public static void main(String[] args) {14. String status = "aaaaaaa";15. String endPoint = "http://localhost:8080/axisWebServiceServer/services/HelloServer";16. String operation = "sayHello";17. Service service = new Service();18.19. try {20. Call call = (Call) service.createCall();21. call.setTargetEndpointAddress(new .URL(endPoint));22. call.setOperationName(operation);23. String xml = (String) call.invoke(new Object[] { status });24. System.out.println(xml);25. } catch (ServiceException e) {26. e.printStackTrace();27. } catch (MalformedURLException e) {28. e.printStackTrace();29. } catch (RemoteException e) {30. e.printStackTrace();31. }32.33. }34.35.}成功!!java实现webservice实例一:首先创建个WEB工程,然后:/axis/网站下载Axis安装包.当然还依赖其他包的,我这里在附件里上传了所有应用到得包,方便大家。
本类推荐
)
开发Web Service:
1、新建一个Java Project,命名为"WS_01";
2、新建一个class,命名为"CalculateService",完整代码如下:
01.
package rong.service;
02.
/** *//**
03.
04.
* 计算器运算
* @author rongxinhua
05.
06.
*
07.
*/
08.
public class CalculateService {
09.
/** *//**
10.
11.
* 加法运算
* @param x 被加数
12.
13.
* @param y 加数
14.
* @return x与y的和
*/
15.
16.
public float plus(float x, float y){
17.
return x + y ;
18.
}
19.
/** *//**
20.
21.
* 减法运算
* @param x 被减数
22.
23.
* @param y 减数
24.
* @return x与y之差
*/
25.
26.
public float minus(float x, float y){
27.
return x - y ;
28.
}
29.
/** *//**
30.
31.
* 乘法运算
* @param x 被乘数
32.
33.
* @param y 乘数
34.
* @return x与y的乘积
*/
35.
36.
public float multiply(float x, float y){
37.
return x * y ;
38.
}
39.
/** *//**
40.
41.
* 除法运算
* @param x 被除数
42.
43.
* @param y 除数
44.
* @return x与y的商
*/
45.
46.
public float divide(float x, float y){
47.
return x / y ;
48.
}
49.
50.
}
3、在"WS_01"项目上new --> other ,找到"Web Services"下面的"Web Service"
;
4、下一步(next),在出现的Web Services 对象框,在Service implementation 中点击"Browse",进入
Browse Classes 对象框,查找到我们刚才写的写的CalculateService 类。
(如下图)。
点击"ok",则回到
Web Service 话框。
5、在Web Service 对话框中,将Web Service type 中的滑块,调到"start service“的位置,将Client
联系我们 如果你喜欢本站,请告诉你的朋友,或在你的博客上连接AJava ,非常感谢! Copyright © 2004-2009 版权
所有 粤ICP 备08114841号
更多更多关关于 于 ""Web Ser Web Ser……" " 的的结果 更多»
/course/j2me/list43.html
技术教程/手机编程-AJava
/course/j2me/2404.html
J2ME中文教程 11 搭建开发平台WTK-AJava
type中的滑块调到"Test client"的位置。
6、在Web Service type滑块图的右边有个"Configuration",点击它下面的选项,进入Service Deployment Configuration对象框,在这里选择相应的Server(我这里用Tomcat6.0)和Web Service runtime(选择Apache Axis2),如下图:
7、点OK后,则返回到Web Service对话框,同理,Client type中的滑块右边也有"Configuration",也要进行相应的置,步骤同上。
完成后,Next --> next即行。
8、到了Server startup对话框,有个按键"start server"(如下图),点击它,则可启动Tomcat服务器
了。
9、等启完后,点击"next -- > next",一切默认即行,最后,点击完成。
最后,出现如下界面:(Web Service Explorer),我们在这里便可测试我们的Web服务。
10、测试比较简单,例如,我们选择一个"plus"的Operation,出现下图,在x的输入框中输入2,在y的输入框中输入3,点击"go",便会在status栏中显示结果5.0。
其他方法的测试也类似。
到这里用Axis2与Eclipse整合开发的Web Service的服务端和客户端就成功了。
你也试试吧!
转自:/rongxh7
AJava[-LAN]网友--IP:192.168.15.*2010-11-02 18:02:23发表 怎么没见着要使用到wsdl 呢 ?
回复支持[0]反对[0]
看过此文的读者还看过:
MyEclipse 注册码生成器 7.0至8.5 版本都可算
MyEclipse 语言转换工具
MyEclipse 8.5.0
MyEclipse 8.5 M2 下载
Myeclipse 注册码
本文内容搜集于互联网,如有侵犯你的权利,请来信告知。
上一篇:解决eclipse 和myeclipse 汉化问题
下一篇:[图解教程]Axis2与Eclipse 整合开发Web Service 之二之二::WSDL 逆向生成服务端
最新评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
请不要发表和本页内容无关的言论。
发表评论。