- 浏览: 1499555 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
Axis
1、再说soap。
前文说过,soap是基于xml的通信协议和编码格式以便用于应用程序间通信。最初是由微软和userland构思,已经历了几代的发展,当前是soap1.2,尽管版本1.1很普遍。W3C的xml协议工作组负责这一规范。
soap被广泛认为是跨平台、跨语言分布式计算应用的新一代支撑. web services是一种技术方案,而在这个方案中用得最广泛的技术实现就是soap。
2、什么是axis呢?
axis本质上是soap引擎,是soap第三代产品(始于ibm的soap4j),是web service方案中解析xml的引擎,一个用于构建soap处理器比如客户端、服务器端、网关等等的框架。当前的版本是用java写的,axis客户端的c++实现正在开发中。Axis不只是soap引擎,它还包括:
(1)简单的独立服务器;
(2)可以插入到servlet引擎(比如tomcat)中的服务器;
(3)Wsdl的扩展支持;
(4)从wsdl生成java类;
(5)一些样例程序;
(6)监控tcp/ip包的工具;
通常xml解析有两种机制:SAX和DOM。SAX的xml解析方式基于事件,一次加载--加载过程依次触发节点事件、元素事件,在事件处理中可以加入业务逻辑代码;DOM则是基于(DOM)对象,两次加载--第一次加载xml文件,第二次遍历文件生成DOM树。axis的底层xml解析机制采用的是SAX,所以灵活高效。
虽然可以自行开发解析xml的代码,但是很麻烦,而且要关注细节,所以一般面向对象的开发很少会自行开发xml解析代码,而都是利用诸如axis这样的框架。譬如有些开发会用到dom4j这样的xml解析工具包。
采用Axis方式开发WS客户端
1、既然axis是框架,所以第一步是下载该框架包。然后可以将该包webapps目录下的axis项目拷到tomcat的webapps目录下,可以从IE中访问,先睹为快,具体操作步骤请参见前文。
2、将该项目lib包内的jar文件拷到新建的axisclient项目lib目录下,设为类路径。这里新建的项目为一般的java项目即可。然后编写如下示例代码:
public class App {
public static void main(String[] args) throws Exception {
Service service = new Service();
Call call = (Call) service.createCall();
//设置调用的目标终端地址
String url = "http://localhost:8888/axis/EchoHeaders.jws";
call.setTargetEndpointAddress(new URL(url));
//设置调用的操作名称
call.setOperationName("echo");
//调用服务(参数是对象数组)
Object o = call.invoke(new Object[]{"tom"});
System.out.println(o);//打印的结果即"tom"
}
}
上述代码表示一个客户端访问axis服务,服务的请求地址为url--当然是部署好axis项目后才能有这个地址,在java中,echo可视为EchoHeaders服务对外开放的一个方法,这个方法的定义是返回传入的参数。再通过web service explorer或TCP/IP Monitor查看请求响应的数据。
参数在上述代码运行后的xml数据中为<arg0 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:string">tom</arg0>,很显然参数名“arg0”的可读性很差。可以在调用invoke方法之前加入下列代码更改:
//设置xml文档中的消息的元素名称
call.addParameter("name", Constants.XSD_STRING, ParameterMode.IN);
xml文档中的参数即表示为<name xsi:type="xsd:string">tom</name>。里面的“XSD”表明采用的schema方式规定xml结构,因为XSD比DTD表达更丰富--最起码它可以定义数据类型,DTD就不可以。
也可以设置返回类型(还是在invoke方法调用前):call.setReturnType(Constants.XSD_STRING)。
3、所有远程调用的最底层机制肯定都是socket。可以通过org.apache.axis.transport.http.HTTPSender类的源码看到axis是如何运用socket机制创建连接,发送和接收输入(InputStream)输出(OutputStream)流以及如何生成请求响应数据信息的具体过程。
发表评论
-
J2EE关于ApacheAxis2的Webservice消息
2011-09-19 20:18 1596到目前为止,web service ... -
Axis Web Service开发之旅 (十) --异步调用WebService
2011-09-19 19:52 2966http://blog.csdn.net/crazystone ... -
《精通JAVA核心技术》-21.6 web服务开发
2011-07-18 10:06 1218详细的描述了使用axis开发web服务。 -
联通接口.doc
2011-07-14 09:44 1157联通接口.doc -
联通接口
2011-07-14 09:34 1联通接口 -
传智播客-web service(8)-利用xfire开发WS应用
2011-07-03 11:45 1971xfire概述 xfire是下一代j ... -
传智播客-web service(7)-序列化与反序列化、文件上传与下载
2011-07-03 11:44 2567序列化与反序列化 WS中 ... -
传智播客-web service(6)-即时发布与定制发布、wsdl文档与java对象
2011-07-03 11:42 2093即时发布与定制发布 ... -
传智播客-web service(4)-利用jdk6开发WS应用
2011-07-03 11:40 2779java开发web service最简单 ... -
传智播客-web service(3)-web service与SOA、web service与ejb
2011-07-03 11:39 1690Web Service与SOA web servic ... -
传智播客-web service(1)-B/S、C/S与远程调用
2011-07-03 11:38 2013web service是徐培成老师 ... -
传智播客-web service(2)-ESB、SOAP和WSDL
2011-07-03 11:36 1729ESBESB,Enterprise Service Bus ... -
Web服务搜索与执行引擎(七)——重温WSDL与SOAP
2011-06-29 14:50 1800接下来的几篇文章是让 ... -
调用天气预报Web Service客户端
2011-06-29 10:27 3558(结合JAVA的WebService支持.pdf进行理解) ... -
官方例子及相关文章
2011-06-28 17:26 1272http://www.stevencharlesrobinso ... -
Jaxb 通过bean与xml交互
2011-06-28 16:05 2020package test; import java.io.F ... -
使用 JAXB 框架定制 Web 服务行为
2011-06-28 15:38 1912http://www.ibm.com/developerwor ... -
webservice_张孝祥
2011-06-22 14:13 5webservice_张孝祥.rar -
常用Web Service汇总(天气预报、时刻表等)
2011-06-21 11:51 1331下面总结了一些常用的Web Service,是平时乱逛时收 ... -
webservice---HelloWorld
2010-11-18 15:42 1291服务器端: 1、下载附件中的HelloWorld.rar,在 ...
相关推荐
总结来说,"axis2-eclipse-codegen-plugin-1.6.2"和"axis2-eclipse-service-plugin-1.6.2"是针对Apache Axis2的Eclipse插件,旨在简化基于Axis2的Web服务开发。通过它们,开发者可以高效地生成和部署服务,同时享受...
共四个文件,都是最先版的,希望可以帮助大家。axis2-eclipse-service-archiver-wizard和axis2-eclipse-codegen-wizard和axis2-1.6.1-bin和axis2-1.6.1-war
标题中的"axis2-eclipse-codegen-plugin-1.6.2.zip"和"axis2-eclipse-service-plugin-1.6.2.zip"是两个与Apache Axis2相关的Eclipse插件,用于简化Web服务的开发过程。Apache Axis2是Java平台上一个成熟的Web服务...
plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_"提到了几个关键元素,分别是"axis2"、"idea-plugin"和"idea导入axis2",这暗示了这个压缩包是用于在IntelliJ IDEA这款集成开发环境(IDE)中支持Axis2服务...
目前axis2最高版本是2.0以上的版本,但是eclipse和myeclipse都不支持,无奈只能使用低版本的插件1.6.3;经实验,可以安装成功;...axis2-eclipse-service-plugin-1.6.3.zip axis2-eclipse-codegen-plugin-1.6.3.zip
基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的开发源码-Web服务框架 Apache Axis.zip 基于java的...
Eclipse Codegen Plugin 和 Service Plugin 是Axis2为Eclipse集成开发环境提供的两个重要工具,它们极大地简化了基于Axis2的Web服务开发过程。 **Apache Axis2 Eclipse Codegen Plugin** 这个插件主要用于自动生成...
Apache Axis2是基于Java的Web服务引擎,它用于创建和部署Web服务以及处理SOAP消息。在给定的信息中,我们关注的是"axis2-std-1.0-bin.zip"和"axis2.war"这两个文件。 1. **axis2-std-1.0-bin.zip**: 这是一个包含了...
Apache Axis2是著名的开源Web服务框架,用于构建和部署高效且灵活的Web服务。这个框架是基于Axis1的升级版,提供了许多改进和新特性,...理解这两个包的用途和内部结构对于有效利用Axis2来创建和部署Web服务至关重要。
axis2-eclipse-codegen-plugin-1.6.0和axis2-eclipse-service-plugin-1.6.0有关jar包下载,解压后直接将这两个jar包放到eclips下的plugins目录下,重启eclipse即可
"Axis2-Web"是Apache Axis2项目的Web应用程序部分,它是用于构建Web服务的一个强大而灵活的框架。Apache Axis2是Java平台上Web服务实现的核心引擎,它提供了高性能、可扩展性和模块化的设计。这个框架允许开发者创建...
axis2c-bin-1.6.0-linux.tar.gz axis2c-bin-1.6.0-win32.zip axis2c-src-1.6.0.tar.gz axis2c-src-1.6.0.zip 加md5
axis2 webservice 服务端jar包: -->axis2-kernel-1.6.1.jar -->axis2-spring-1.6.1.jar -->axis2-transport-http-1.6.1.jar -->XmlSchema-1.4.7.jar -->wsdl4j-1.6.2.jar -->axiom-api-1.2.12.jar -->axiom...
### 深入理解Axis2与Web Service #### Web Service概览 随着互联网技术的不断发展,Web Service作为一种标准的应用间通信方式,逐渐被广大开发者所接受。它是一种以标准方式暴露应用程序功能的服务,使得不同平台...
### Axis开发Web Service实例详解 #### 一、概述 在探讨如何使用Apache Axis来开发Web Service之前,我们首先需要了解一些基本概念。 **Web Service**是一种标准的技术框架,用于实现不同平台之间的应用通信。它...
本手册旨在详细介绍Web Service技术及其在开发中的应用,特别关注两种主流的Web Service开发框架:Axis2和CXF。Web Service是一种通过互联网进行通信的标准化方式,允许不同系统之间的应用程序共享数据和服务。 ###...
【描述】:本文将详细介绍如何在Eclipse环境中利用Axis2框架开发一个Web Service服务端,包括计算器服务CalculateService的实现步骤。 【标签】:Axis2, Eclipse, 整合开发, Web Service 【内容】: 开发Web ...
总结来说,"axis2-eclipse-codegen-wizard.zip"和"Axis2_Service_Archiver.zip"是Apache Axis2 Web服务开发的得力助手,它们分别解决了代码生成和服务打包的问题,使得在Eclipse环境下进行Web服务开发变得更加便捷和...