- 浏览: 52625 次
- 性别:
- 来自: 北京
最新评论
-
lqwforever:
不错,支持一下
redhat linux卸载自带的Java1.4.2安装JDK6 -
liumiao2011:
keepgoing 写道java代码也可以格式化还是只能格式化 ...
让Editplus自动格式化js、css、html。。。 -
keepgoing:
java代码也可以格式化还是只能格式化HTML/CSS、js代 ...
让Editplus自动格式化js、css、html。。。
这两天由于工作需要,需要使用Axis2组件,上网搜了好多资料,发现看起来都很吃力,还是同事小虞同学总结的比较好,让我对Axis2有了一些入门级别的了解。现在我将小虞同学总结的内容二次加工分享给大家。
1.首先什么是Web Service?
当你编写程序时遇到一个情况:你的应用程序需要调用一个远程程序的方法,或一个远程的应用程序需要调用你的应用程序的方法时,就需要使用Web Service。我们一般把Web Service看成这个提供服务的方法,于是我们说“我调他的Web Service”或“他调我的Web Service”。其实Web Service是一套标准,它定义了应用程序如何在互联网上实现互操作。所以“我调他的Web Service”的意思是我是客户端,他是服务器端,反之亦然。你可以用任何语言写Web Service,只要双方遵守共同的标准就行。
2.axis2是干啥的?
Axis2是实现Web Service的一种技术框架(架构)。肿么说呢,他就是一些Java类和配置文件,其他的我也不知道了。总之你去网上下载一个axis2.war文件,然后把它部署到Tomcat下,启动Tomcat,就可以在浏览器里访问它了。你可能会说:“这样的话axis2不就是一个很普通的Web应用吗”。对,它是一个Web应用,这个应用默认提供了一个Service(Web Service的服务器端)叫Version。
我们可以看到这个默认的服务端名是Version,而getVersion是服务提供的方法。点击服务名可以看到有关该服务的描述。
一个服务器端其实就是WEB-INF/services/目录下的一个aar文件而已。所以以后咱们写服务器端只需要写一个aar文件放到WEB-INF/services/目录下即可。
这时候你可能会问:这和我自己的程序没关系啊,难道我必须得在axis2这个应用下写我自己的应用吗?不用担心后面我会讲如何把axis2整合到你的应用下。
package com.neusoft.axis2demo.services;
import com.neusoft.axis2demo.common.AxisServiceResponseInfo;
public AxisServiceResponseInfo nameConvertToContext(
AxisClientRequestInfo clientrequest) {
System.out.println("进入服务器端!");
AxisServiceResponseInfo axisServiceresponseinfo = new AxisServiceResponseInfo();
String name = clientrequest.getName();
if (name.equals("红豆")) {
axisServiceresponseinfo.setPoemcontent("红豆生南国,春来发几枝?愿君多采撷,此物最相思!");
} else if (name.equals("无题")) {
axisServiceresponseinfo.setPoemcontent("相见时难别亦难,东风无力百花残。春蚕到死丝方尽,蜡炬成灰泪始干。"
+ "晓镜但愁云鬓改,夜吟应觉月光寒。蓬山此去无多路,青鸟殷勤为探看。");
} else if (name.equals("无名诗词"))
axisServiceresponseinfo.setPoemcontent("繁星烁闪浩月天,恰似嫦娥舞翩翩.可怜吴刚空对酒,相思泪洒孤枕边");
else if (name.equals("草")) {
axisServiceresponseinfo.setPoemcontent("离离原上草 一岁一枯荣. 野火烧不尽 春风吹又生.");
} else {
axisServiceresponseinfo.setPoemcontent("对不起,你要找的诗词没有存储!");
}
return axisServiceresponseinfo;
}
}
package com.neusoft.axis2demo.common;
{
private String name;
{
return name;
}
{
this.name = name;
}
}
{
private String poemcontent;
{
return poemcontent;
}
public void setPoemcontent(String poemcontent)
{
this.poemcontent = poemcontent;
}
}
下面是解析该服务器类AxisDemoService的services.xml文件,该文件的内容如下:
<service name="Axis2Demo">
<parameter name="ServiceClass" locked="false">
com.neusoft.axis2demo.services.AxisDemoService
</parameter>
<operation name="nameConvertToContext">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
</service>
服务器类AxisDemoService中有几个方法就需要配置几个<operation></operation>。nameConvertToContext为AxisDemoService类中的方法。
目录结构如下:
首先我们不可能在我们的应用程序中直接调远程的方法,因为我们的Java编译器会因为找不到该方法而报错。所以我们想要调用一个我们本地工程没有的方法,而且还不让Java编译器报错,使用的肯定是Java的反射机制!
请下载Axis2_Codegen_Wizard,我用的是1.3.0版本。
在此之前请在浏览器访问刚才的服务器的描述文件,访问方法是刚才讲过的先访问http://localhost:8088/axis2,然后点击services,最后点击刚才的服务名。然后保存描述服务的网页(是个xml文件),保存在任意位置。
最后把保存后的文件后缀名改成wsdl,我们就用Axis2_Codegen_Wizard通过这个wsdl文件去生成代码。
现在回到Axis2_Codegen_Wizard,下载好后,把下载好的代码生成工具Axis2_Codegen_Wizard拷贝到eclipse下的plugins下。
以我机器为例拷贝到D:\eclipse3.2\plugins里,然后删除D:\eclipse3.2\configuration下的org.eclipse.update文件夹里的内容或者在eclipse的快捷方式里加上-clean以使插件生效。然后重启eclipse,选择“File->New->Other”可以看到如下的界面。
生成代码的具体步骤如下: 选择菜单“File->New->Other”,从对话框中选取“Axis2 Wizards”下面的“Axis2 Code Generator”,点next。
然后选择刚才保存的wsdl文件,点next。
注意,在图中选中custom和Generate Both with all classes for every elements on Shemas。很重要!
在Output Path这项选中工程的根目录作为这些自动生成代码的目录。
然后点击 finish 完成代码生成工作.下图为生成代码后的工程目录结构。
我标记的都是生成的文件。
下面咱们自己只需要写一点程序就可以调用远程的方法了。
下面写一个Test类,去调用远程的方法。
TestAxis2Demo.java
package com.neusoft.axis2demo.test;
import com.neusoft.axis2demo.common.xsd.AxisClientRequestInfo;
import com.neusoft.axis2demo.common.xsd.AxisServiceResponseInfo;
import com.neusoft.axis2demo.services.NameConvertToContext;
import com.neusoft.axis2demo.services.NameConvertToContextResponse;
public class TestAxis2Demo {
{
//axis2demostub是方法调度器
Axis2DemoStub axis2demostub = new Axis2DemoStub();
//nameConvertToContext是方法
NameConvertToContext nameConvertToContex = new NameConvertToContext();
//nameConvertToContextResponse是方法的执行结果
NameConvertToContextResponse nameConvertToContextResponse = new NameConvertToContextResponse();
//axisClientRequestInfo是方法的参数
AxisClientRequestInfo axisClientRequestInfo = new AxisClientRequestInfo();
//axisServiceResponseInfo是方法的返回值(方法的返回值.get_return())
AxisServiceResponseInfo axisServiceResponseInfo = new AxisServiceResponseInfo();
//给方法的参数添加上内容
axisClientRequestInfo.setName("无名诗词");
//给方法添加上参数
nameConvertToContex.setClientrequest(axisClientRequestInfo);
//执行方法
nameConvertToContextResponse = axis2demostub.nameConvertToContext(nameConvertToContex);
//得到返回值
axisServiceResponseInfo = nameConvertToContextResponse.get_return();
String poemcontent = axisServiceResponseInfo.getPoemcontent();
System.out.println("您输入的诗词题目是===="+axisClientRequestInfo.getName());
System.out.println("下边是根据您所输入的诗词的题目从服务器端返回的诗词内容!");
System.out.println(poemcontent);
}
下边我们只要把Tomcat目录下的\webapps\axis2下的内容copy到我们现有eclipse工程的应用目录下(这里我的web应用是D:\eclipse3.2\workspace\Axis2Demo\WebContext)就可以把刚才的Web Service和我们现有的工程集成一起了。
写这个总结真是累死我了,回去的车都少了。希望能给大家提供帮助,欢迎高手指点。
发表评论
文章已被作者锁定,不允许评论。
-
JSP禁用缓存常用方法
2013-05-05 12:59 6341.客户端缓存要在<head>中加入类似如 ... -
tomcat和jdk在linux下打包部署
2013-04-20 21:10 8181.找一个安装好的linux版本的jdk,把安装后的目录打 ... -
Oracle 11G在用EXP 导出时,空表不能导出的解决方法(ORA-01455)
2013-02-27 14:00 77811G中有个新特性,当表无数据时,不分配segment,以节 ... -
Oracle rac使用序列需要注意的地方
2012-12-12 00:11 942首先一个序列的定义如下 -- Create seque ... -
[转]Java中static、final用法小结
2012-09-20 18:00 608一、final 1.final变量: 当 ... -
oracle中update...select
2012-06-10 20:37 3642比如有两张表 USER_CH ... -
我对eclipse里设置编码格式的理解
2012-05-13 19:47 1325eclipse里设置编码格式的方式很多,用户很容易产生混乱,下 ... -
[转]JDK与JRE的区别
2012-03-22 00:22 602很多程序员已经干了一 ... -
[转]区分Eclipse中的两种JRE
2012-03-22 00:03 1044Eclipse用到两种JRE,一是 ... -
code
2011-12-29 13:37 9191.在D盘根目录下建立文件夹叫code。 2.把jd ... -
XFire使用Ant脚本生成服务端和客户端
2011-12-29 13:37 1080以前成功过,结果没 ... -
游标模板
2011-12-29 13:36 701郭哥给我的模板,留着以后用。 declare i nu ... -
JS:完全监视输入框
2011-12-28 10:04 1163有时候我们在输入框中输入文字,页面上实时显示着输入 ... -
关于“计算短信要拆分的条数”
2011-12-28 10:04 2151今天要实现一个功能,就是要在HTML页面上用JS根据短信的 ...
相关推荐
用于入门学习axis2,部署好即可用! //初始化文件 AxisProjectStub stub = new AxisProjectStub(); AxisProjectStub.Showname request = new AxisProjectStub.Showname(); request.setName("张三"); String name =...
这个“axis2学习资料”压缩包很可能是包含了关于Axis2的各种教程、文档、示例代码和其他学习资源,旨在帮助开发者深入理解和掌握Axis2的使用。 Axis2的核心特性包括: 1. **模块化设计**:Axis2采用了模块化的...
这个简明教程将引导你入门Axis2的使用。 首先,我们创建一个名为`StockQuoteService`的Java类,它包含了获取股票价格(`getPrice`)和更新股票价格(`update`)的方法。这里的`StockQuoteService`是一个简单的POJO...
在本"Axis2学习文档"中,我们将深入探讨 Axis2 的核心概念、功能特性以及如何使用它来创建和部署Web服务。 首先,让我们了解什么是Web服务。Web服务是一种通过网络进行通信的应用程序,允许不同系统之间的数据交换...
1. **Axis2入门文档**:Axis2的核心概念包括模块、服务、消息引擎和服务部署。模块是Axis2的基本构建块,可以包含服务、消息处理器和服务间的数据共享逻辑。服务是Web服务的基本单元,定义了对外提供的功能。消息...
总结来说,"Axis2入门实例"涵盖了从安装环境、创建服务到运行客户端的全过程,对于希望学习或已经在使用Axis2的人来说,这是一个宝贵的资源。通过深入研究提供的源代码和实践操作,你可以掌握使用Axis2构建和使用Web...
- Axis2拥有活跃的社区,提供丰富的文档、教程和论坛讨论,便于学习和求助。 总之,Axis2是一个强大的Web服务框架,通过理解和掌握其核心概念、版本特性以及配置方法,开发者能够有效地利用它构建高效、安全的Web...
本文将结合实践经验,分享在使用Axis2进行WebService开发时的一些心得和解决方案,希望能够帮助正在学习的朋友少走弯路。 #### 一、搭建环境 **1. 安装配置** - **安装Tomcat:** 首先需要安装并配置好Tomcat...
在这个名为"AXIS2快速学习资料"的压缩包中,包含两份宝贵的资源:一份是中文的Word文档,标题为"Axis2--Java访问Axis2接口.doc",另一份是英文的PDF,标题为"Axis2--Dev_Web_Services_With_Apache_Axis2.pdf"。...
通过这篇Java版的Axis2入门教程,我们了解到如何轻松地利用Axis2构建和发布WebService,无需繁琐的配置文件。这种简化的方法使得开发人员可以更加专注于服务逻辑,而不用过于关心服务的底层实现。同时,由于Axis2的...
本入门教程将帮助你理解如何使用AXIS2来创建、发布和调用SOAP Web服务。首先,你需要了解AXIS2的架构,它主要由以下几个部分组成: 1. **Service Archive (AAR)**:这是AXIS2中服务的打包格式,类似于Java的JAR文件...
### AXIS2 入门文档知识点概述 #### 一、AXIS2 概述 - **定义**:AXIS2作为Apache Axis的后继版本,旨在提供一个更为灵活、高效且易于扩展的SOAP引擎。 - **架构特点**: - 基于全新的体系结构设计,与之前的Axis1...
axis2-adb-1.5.4.jar axis2-adb-codegen-1.5.4.jar axis2-codegen-1.5.4.jar axis2-corba-1.5.4.jar axis2-fastinfoset-1.5.4.jar axis2-java2wsdl-1.5.4.jar axis2-jaxbri-1.5.4.jar axis2-jaxws-1.5.4.jar axis2-...
标题中的"axis2-idea-plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_"提到了几个关键元素,分别是"axis2"、"idea-plugin"和"idea导入axis2",这暗示了这个压缩包是用于在IntelliJ IDEA这款集成开发环境...
【Axis2学习教程-全面学习AXIS】是一个针对Java开发者的教程,专注于教授如何使用Axis2这一流行的WebService引擎。Axis2是Apache软件基金会开发的Web服务框架,它为创建和部署Web服务提供了一种高效且灵活的方式。在...
### Axis2 开发 Web Services 入门 #### 知识点概述 本文旨在介绍如何使用 Axis2 开发 Web Services 的全过程,包括环境搭建、插件安装等基础准备工作,以及具体的开发流程与实例演示。 #### 1. 环境搭建 ##### ...
2. **解压Axis**:下载的ZIP文件(如axis-bin-1_4.zip)应解压缩到一个不含中文名称的文件夹,以避免可能出现的编码问题。例如,将文件解压至F:\AXIS_Study。 解压后,你会看到以下目录结构: - docs:包含各种文档...