WebService的开发模版(Axis2_1.5环境)
MyEclipse下开发Web_Service(Axis2)

如何将基于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 WebService 开发指南

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的。
webservice项目搭建教程

WebService搭建教程项目环境:tomcat6.0+Myeclipse6.5+Axis2 1.5准备工作:现在来分析一下这个老师给的源码含义:一个是wsdemosource 一个是wsdemo, 第一个是源码,那对于我们来说是有用的,第二个是tomact服务器:我们需要把Axis2环境拷贝到tomcat的webapp下:从如下的网址下载Axis2的最新版本:读者可以下载如下两个zip包:(二选一)axis2--bin.zipaxis2--war.zip其中axis2-将axis2--war.zip文件解压到相应的目录,将目录中的axis2.war文件放到<Tomcat安装目录>\webapps目录中(本文使用的Tomcat的版本是6.x),并启动Tomcat。
在浏览器地址栏中输入如下的URL:localhost:8080/axis2/如果在浏览器中显示出如图1所示的页面,则表示Axis2安装成功。
一、. Axis2作为一个插件,我们第一步要做的是把Axis2下的两个插件放在Myeclipse安装目录下的,目录下,直接复制进去即可!他们的作用就是为了生成LoginService.aar.二、从Myeclipse中导入web工程,file-→import-→选择存在工程到工作区—>然后,点击下一步,选择文件目录:如图点击确定,即可!结果如图所示:→新建—>other→一直点击下一步,最后输入服务名和类名!三、接着需要部署项目,点击出现如下界面:选择需要部署的项目:选择服务类型,我们需要选择的是:tomact 6.x;四、修改tomact的配置:点击Myeclispe标题栏的windows→show view-→service出现如下界面:选中tomcat,右击配置:然后点击tomcat左侧的+号:加载jdk:点击右侧的add:出现如下界面:Jre名字自己取,我取的是JRE,然后点击右侧的浏览按钮,选择jdk中jre的安装目录:然后点击ok!五、右击tomcat下的增加部署:选择项目名:点击ok部署结束.启动tomcat,输入地址发现如下错误:错误原因:目标文件找不到,此时启用tomcat下的浏览功能:发现项目下面缺实少了2个文件:此时需要把workspace下的那个文件拷贝到此文件夹下:六、浏览测试:首先启动tomcat服务器:在地址栏输入如下地址:点击login,如果用户名或者密码与上述不符合:出现如下界面:。
使用axis2构建WebService服务

使用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的开发使用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的WebService测试,开发,部署

基于Axis的WebService测试,开发,部署带抓图的word文档在:下面是从word里保存出来的文字:1 WebService测试不编写代码的情况下,对webservice进行测试,编写代码进行测试的方法.1.1 使用xmlspy测试接口测试webservice接口地址为:在xmlspy中的测试步骤:1. 启动XmlSpy,主菜单–>SOAP –> Create new SOAP request.2. 选择wsdl文件或者提供wsdl的网址:3. 选择要测试的方法4. 填写调用参数5. 发送请求6. 查看服务端返回的结果7. 由于wsdl描述的webservice入口和我们要连接的服务器不一定是同一个地址,因此还可以改变连接参数8. 因此参考:这种方式的优点是:门槛低,只要会填参数就可以测试webservice。
缺点是:xmlspy不是免费的,xmlspy文件超大,携带不方便。
无法查看http header.1.2 用tcpmon测试捕获SOAP数据包工具来源,下载地址:优点,文件小巧,不只是测试webserice可以用,测试其它http 接口也很方便。
缺点,没法设置contenttype,所以会有乱码。
1.3 用xmlhttp发送SOAP数据包优点,简单的html可以存放在各地,可以在预先准备好SAOP数据的情况下,将该测试用例发给工程人员在现场进行测试。
缺点,soap数据要靠自己组装。
2 WebService开发2.1 客户端代码开发2.1.1 Wsdl2java命令方式2.1.1.1 预备wsdl2java.batwsdl2java.bat的内容为:%JAVA_HOME%/bin/java.exe -classpath “./axis-ant.jar;./axis.jar;./commons-discovery-0.2.jar;./commons-logging-1.0.4.jar;./jaxrpc.jar;./log4j-1.2.8.jar;./saaj.jar;./wsdl4j-1.5.1.jar” org.apache.axis.wsdl.WSDL2Java -v -n -O -1 -D -W -t -a -o E:\mywork\wsdl2javatest\src(没有–s –S两个选项, -s用来生成服务端代码,使用-s后, -t无效).-o是原代码输出的地方。
axis开发web service文档

Axis框架开发web service1.搭建axis环境●建立自己的web工程bookstore●把当前目录下的Axis.rar解压缩到一个文件夹,这里假设你解到C:\axis,把C:\axis\webapps\axis\WEB-INF\lib目录下的所有.jar文件复制到你的这个web 应用程序的WEB-INF\lib下,再把C:\axis\webapps\axis\WEB-INF目录下的web.xml复制到你的web应用程序的WEB-INF下。
这个步骤相当于在你的web应用程序中配置了Axis,若要集成spring则需要将当前目录下的lib/spring.jar复制到你的这个web应用程序的WEB-INF\lib下,以支持spring集成.2.配置环境变量将当前目录下的lib文件夹下的所有文件复制到d:/lib下,修改环境变量CLASSPATH,在后边加上下边这一段:d:\lib\axis.jar;d:\lib\jaxrpc.jar;d:\lib\commons-logging-1.0.4.jar;d:\lib\commons-discovery-0.2.jar; d:\lib\jaxrpc.jar;d:\lib\commons-logging-1.0.4.jar;d:\lib\saaj.jar;d:\lib\wsdl4j-1.5.1.jar;3.建立服务类●图书实体类:Bookpackage com.bookstore.model;public class Book {private String name;private String ISDN;private String author;public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getISDN() {return ISDN;}public void setISDN(String isdn) {ISDN = isdn;}public String getName() {return name;}public void setName(String name) { = name;}}业务逻辑类:BookServicepackage com.bookstore.service;public class BookService {public void printBook(com.bookstore.model.Book book){System.out.println("name:"+book.getName());System.out.println("ISDN:"+book.getISDN());System.out.println("author:"+book.getAuthor());}}4.创建deploy.wsdd在工程的WEB-INF下创建文件deploy.wsdd,编写deploy.wsdd发布文件,typeMapping定义book类的序列化配置<deployment xmlns="/axis/wsdd/"xmlns:java="/axis/wsdd/providers/java"><service name="BookService" provider="java:RPC"><parameter name="className" value="com.bookstore.service.BookService"/><parameter name="allowedMethods" value="*"/><typeMapping encodingStyle="/soap/encoding/"qname="ns1:Book"languageSpecificType="java:com.bookstore.model.book.Book"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"name="Book"/></deployment>5.生成server-config.wsdd利用deploy.wsdd生成server-config.wsdd(axis的配置文件),无论deploy.wsdd存放于什么位置,生成的server-config.wsdd都存在于localhost:8080/bookstore/WEB-INF下java org.apache.axis.client.AdminClient -lhttp://localhost:8080/bookstore/service s/AdminService deploy.wsdd6.生成stub client生成文件包括:Book.java,BookService_PortType.javaBookServiceService.javaBookServiceServiceLocator.javaBookServiceSoapBindingStub.java具体用法参考第6步java org.apache.axis.wsdl.WSDL2Javahttp://localhost:8080/bookstore/services/BookService?wsdl -pcom.bookstore.client7.编写客户端代码访问服务package com.bookstore.test;public class BookServiceTest {public static void main(String[] args){try {com.bookstore.client.Book book=new com.bookstore.client.Book();book.setName("读者");book.setISDN("ISO9001-4532d-107-8970");book.setAuthor("fool");com.bookstore.client.BookServiceService bookService=newcom.bookstore.client.BookServiceServiceLocator();com.bookstore.client.BookService_PortType client=bookService.getBookService(); client.printBook(book);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}8.集成spring●要是web服务的类能够和spring环境一起工作,有一些额外的工作要做,web服务的提供类必须有spring管理,因此在调用web服务时需要从web应用环境中去的代表服务类的bean,完成这一步用到了一个开放源代码组织提供的几个类/projects/spring/browse/SPR-371SpringAxisServlet.java,SpringBeanProvider.java,SpringBeanRPCPrvider.java SpringAxisServlet:继承自AxisServlet,用来加载spring的context,SpringBeanProvier运行的前提SpringBeanProvider:用于获取spring context中的beanSpringBeanRPCProvider:调用SpringBeanProvider来获得通过Spring IoC注入后的web 服务bean,这三个类在当前目录下的spring-axis文件夹下可以找到●将上述三个类文件复制到你的web工程中●建立spring业务类SpringServicepackage com.bookstore.service;public class SpringService {private String user;public void callUser(){System.out.println("Hi,"+user);System.out.println("Date:"+new java.util.Date());}public String getUser() {return user;}public void setUser(String user) {er = user;}}●WEB-INF下建立spring配置文件AxisServlet-servlet.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC"-//SPRING//DTD BEAN//EN""/dtd/spring-beans.dtd"> <beans><beanname="SpringService"class="com.bookstore.service.SpringService"><property name="user"><value>Wang Gai</value></property></bean></beans>●在web.xml中需要加入如下配置:<servlet><servlet-name>AxisServlet</servlet-name><display-name>Apache-Axis Servlet</display-name><servlet-class>com.bookstore.axis.SpringAxisServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationcontext.xml</param-value> </init-param></servlet>●deploy.wsdd配置如下:<service name="SpringTest" provider="Handler" style="rpc"><parameter name="handlerClass"value="com.bookstore.axis.SpringBeanRPCProvider"/><parameter name="springBean" value="SpringService"/><parameter name="allowedMethods" value="*"/></service>●生成server-config.wsddjava org.apache.axis.client.AdminClient -lhttp://localhost:8080/bookstore/service s/AdminService deploy.wsdd●生成stub clientjava org.apache.axis.wsdl.WSDL2Javahttp://localhost:8080/bookstore/services/SpringService?wsdl -pcom.bookstore.client.spring●编写客户端程序测试服务package com.bookstore.test;public class SpringServiceTest {public static void main(String[] args){try {com.bookstore.client.spring.SpringServiceService springServiceService=newcom.bookstore.client.spring.SpringServiceServiceLocator();com.bookstore.client.spring.SpringService_PortType client=springServiceService.getSpringService();client.callUser();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}。
Web Service面试题:如何搭建Axis2的开发环境

Web Service面试题:如何搭建Axis2的
开发环境
问题:Web Service面试题:如何搭建Axis2的开发环境回答:
1. 下载和安装Java (JDK1.4以上)。
设置JAVA_HOME环境变量。
2. 下载Axis2并解压到目标文件夹。
3. 拷贝axis2.war文件到你的Servlet引擎的webapps目录。
4. 设置AXIS2_HOME环境变量到步骤3的axis2.war所在文件夹。
大部分情况下还需要为我们的服务建立一个WSDL文件,Axis2的Java2WSDL可以用来生成一个WSDL。
如果要从一个Java类来生成一个WSDL,可按照以下步骤:
a. 建立和编译你的Java类
(Windows)
%AXIS2_HOME% bin java2wsdl -cp . -cn samples.quickstart.service.pojo.StockQuoteService -of StockQuoteService.wsdl
(Linux)
$AXIS2_HOME/bin/java2wsdl -cp . -cn samples.quickstart.service.pojo.StockQuoteService -of
StockQuoteService.wsdl
b. 使用命令行来生成WSDL:
生成命令行以后,你就可以按照你的需要进行修改,例如你可能需要添加一个定制的错误处理,或者改动生成的元素的名字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WebService的开发模版(Axis2 1.5环境)
Axis2已经升级到1.5了,下载地址:
/ws/axis2/1_5/axis2-1.5-bin.zip
/ws/axis2/1_5/axis2-1.5-war.zip
两个包,bin是开发包,war是部署包。
环境:
axis2-1.5
jdk1.5
一、创建项目
导创建一个Java项目,项目结构如下图:
Service
└─src
└─pojo
└─META-INF
二、导入axis2的包
解压缩axis2-1.5-bin.zip到一个目录下,然后直接引入axis2的jar包即可。
也可以讲axis 2的包复制到lib下。
三、创建服务
axis2服务的创建过程就是写Java类。
这里创建一个最简单的Service,作为发布对象。
package pojo;
/**
* 测试Service
*
* @author leizhimin 2009-8-4 15:48:13
*/
public class SimpleService {
public String doSomething(String taskname) {
System.out.println("MyServiceImpl is calling doSomething with "+ t askname + "!");
return taskname + "is finished!";
}
}
把创建好的SimpleService.class文件拷贝到axis的pojo下面,如果没有pojo文件夹则自己创建一个。
四、描述服务
在项目的src\META-INF文件夹下面,创建services.xml,内容如下:
<service name=" SimpleService "scope="application"targetNamespace="http: ///">
<messageReceivers>
<messageReceiver mep="/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOn lyMessageReceiver"/>
<messageReceiver mep="/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMess ageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass">pojo.SimpleService</parameter>
</service>
服务名:SimpleService
服务实现类:pojo.SimpleService
生成SimpleService.aar文件,目的是类文件可以带包名进行发布服务
1.cmd->进入到项目的“src”目录 执行下面命令-
“jar -cvf SimpleService.aar META-INF”;
五、部署服务
将下载的axis2-1.5-war.zip解开,得到一个axis2.war,将其解压缩到tomcat的默认的w eb发布目录webapp下面,比如,在我机器上会产生F:\apache-tomcat-6.0.20\webapps \axis2的目录,目录下面就是axis2.war里面的内容。
然后,将生成的SimpleService.aar复制到F:\apache-tomcat-6.0.20\webapps\axis2\ WEB-INF\services下面。
八、启动tomcat,查看发布服务
浏览axis2的服务
点Services,查看所有的服务
在点击服务连接,就可以查看wsdl了:
经过这样的测试后,服务发布算成功了。
六、客户端服务
package pojo;
import java.io.ByteArrayInputStream; import java.io.IOException;
import java.io.InputStream;
import .MalformedURLException;
import .URL;
import .URLConnection;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import space.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class RPCClient
{
public static void main(String[] args) throws Exception
{
try {
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(
"http://localhost:8007/axis2/services/SimpleService");
options.setTo(targetEPR);
// 指定getGreeting方法的参数值
Object[] opAddEntryArgs = new Object[] {"2011-1-25测试"};
// 指定getGreeting方法返回值的数据类型的Class对象 Class[] classes = new Class[] {String.class};
// 指定要调用的getGreeting方法及WSDL文件的命名空间 QName opAddEntry = new QName("http://pojo", "QueryCompany");
// 调用getGreeting方法并输出该方法的返回值
String xml =(String)serviceClient.invokeBlocking(opAddEntry,
opAddEntryArgs, classes)[0];
System.out.println(xml);
} catch (Exception e) {
e.printStackTrace();}}。