用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx

上传人:b****0 文档编号:13241159 上传时间:2022-10-08 格式:DOCX 页数:23 大小:21.92KB
下载 相关 举报
用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx_第1页
第1页 / 共23页
用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx_第2页
第2页 / 共23页
用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx_第3页
第3页 / 共23页
用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx_第4页
第4页 / 共23页
用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx

《用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

用Java实现基于SOAP的XML文档网络传输及远程过程调用Word文档下载推荐.docx

apache.freelamp./ws/soap/version-2.3.1/

Xerces:

xml.apache.org/dist/xerces-j/

JavaMail:

java.sun./products/javamail/downloads/index.html

JAF:

java.sun./products/javabeans/glasgow/jaf.html

下载后将它们分别解压缩。

分别在这四个包的解压目录中找到:

xerces.jar、soap.jar、mail.jar、activation.jar(JAF的),则是四个jar文件是我们所需要的。

本机安装环境:

WindowsXP(SP2)+JDK1.4.2_06+Tomcat5.0.28+SOAP2.3.1

配置步骤:

1、安装JDK和Tomcat。

过程比较简单,这里不再详述。

2、将刚才所找到的四个jar文件复制到Tomcat的“Tomcat5.0\mon\lib”目录下,这个目录是Tomcat的默认包目录,在这个目录中的所有包在Tomcat启动时都会被自动加载。

3、将\JDK1.4.2\lib\路径下的tools.jar也复制到Tomcat的“Tomcat5.0\mon\lib”目录下。

4、将soap解压目录的webapps目录下的soap.war文件,复制到Tomcat的“Tomcat5.0\webapps”目录下,这个目录是Tomcat的WEB应用所在目录。

重新启动Tomcat,Tomcat会自动将其解压,并配置好路径。

可以尝试在浏览器中输入“localhost:

8080/soap/”,看SOAP是否安装好。

5、注意在编写程序时,需要将所得到的四个jar文件路径设置到所使用的Java编程环境中,因为在程序中需要用到其中的类文件。

具体步骤略。

6、重启Tomcat服务。

这时Tomcat会将“Tomcat5.0\mon\lib”目录下新加入的包加载到内存中。

到此,我们已经配置好了程序运行所需要的环境。

2.基于SOAP的XML文档网络传输

SOAP规X主要定义了四个元素:

SOAP信封规X,传输和协议绑定,编码规则和一个RPC协定。

用于实现消息的网络传输。

SOAP信封规X,SOAP信封规X对计算机间传递的数据如何封装定义了具体的规则。

这包括应用特定的数据,如要调用的方法名,方法参数和返回值;

还包括谁将处理封装内容,失败时如何编码错误消息等信息。

数据编码规则,为了交换数据,计算机必须在编码特定数据类型的规则上达成一致,SOAP也有自己的一套编码数据类型的约定。

大部分约定都基于W3CXMLSchema规X。

RPC协定,SOAP能用于单向和双向等各种消息接发系统。

SOAP为双向消息接发定义了一个简单的协定来进行远程过程调用和响应,这使得客户端应用可以指定远程方法名,获取任意多个参数并接受来自服务器的响应。

传输和协议绑定,提供了更底层协议传输SOAP封套的一套通用机制。

而以上四个部分统称为一个SOAP消息。

我们先来看一篇XML文档是如何变成SOAP的。

采用一个简单的购物订单文件PO.xml。

内容为:

<

?

xmlversion="

1.0"

encoding="

UTF-8"

>

PurchaseOrderxmlns="

urn:

oreilly-jaws-samples"

<

shipTocountry="

US"

<

name>

JoeSmith<

/name>

street>

14OakPark<

/street>

city>

Bedford<

/city>

state>

MA<

/state>

zip>

01730<

/zip>

/shipTo>

items>

itempartNum="

872-AA"

<

productName>

CandyCanes<

/productName>

quantity>

444<

/quantity>

price>

1.68<

/price>

ment>

Iwantcandy!

/ment>

/item>

/items>

/PurchaseOrder>

其对应的SOAP消息为:

POST/ServletTemp/HTTPReceiveHTTP/1.0

Host:

localhost

Content-Type:

text/xml;

charset=utf-8

Content-Length:

939

SOAPAction:

"

xmlversion=1.0encoding=UTF-8?

SOAP-ENV:

Envelope

xmlns:

SOAP-ENV="

schemas.xmlsoap.org/soap/envelope/"

xmlns:

xsi="

.w3.org/2001/XMLSchema-instance"

xsd="

.w3.org/2001/XMLSchema"

Header>

jaws:

MessageHeaderxmlns:

jaws="

SOAP-ENV:

mustUnderstand="

1"

From>

Me<

/From>

To>

You<

/To>

MessageId>

9999<

/MessageId>

/jaws:

MessageHeader>

/SOAP-ENV:

Body>

Envelope>

一个SOAP消息包括:

SOAP封套,SOAP头(可选),SOAP主体。

我们首先将XML文档包装到一个SOAP体中,然后再把SOAP体包装到一个SOAP封套中,可以在封套中再添加一个SOAP头(不是必须),最后将SOAP封套绑定到一个协议中。

我们来仔细分析一下代码。

SOAP封套

SOAP封套的声明在XML标签的最外层,它表明了一个SOAP文档的边界。

下面的封套标签显示了三个必要的属性,这些属性指明了封套中使用的名字空间和语法。

……

其中第一个属性:

是一个名字空间声明,防止多个XML文件组合时发生标签名字的冲突。

第二个属性声明了XML模式实例的名字空间。

前缀xsi必须放在这个名字空间定义的所有元素和属性之前。

最后一个属性是另外一个名字空间声明,它定义了XMLSchema名字空间,这个名字空间下的元素用来指定xsi:

type属性的值(如xsd:

string)。

SOAP头

SOAP头和体在语法上非常类似。

SOAP1.1和SOAP1.2都没有头里应该有些什么,它就是简单的存放一些指令,提供给接收消息的SOAP处理器。

建立在SOAP之上的更高级协议(比如ebXML消息服务)就通过定义一些特殊元素来规XSOAP头的格式。

另外当对RPC使用SOAP时,头部也可以用来表示一些底层信息。

SOAP主体

SOAP主体用来存放实际数据或消息的有效负载(本例中为XML文档),从而提供给最终的接受者使用或处理。

SOAP协议绑定

当绑定到一个HTTP协议时,需要在SOAP封套前面添加HTTP头的信息。

在SOAP1.1中SOAPAction是HTTP绑定所必须的部分,它的目的是让

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1