CMHKOASDWEB服务Word文件下载.docx

上传人:b****3 文档编号:6199033 上传时间:2023-05-06 格式:DOCX 页数:20 大小:130.63KB
下载 相关 举报
CMHKOASDWEB服务Word文件下载.docx_第1页
第1页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第2页
第2页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第3页
第3页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第4页
第4页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第5页
第5页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第6页
第6页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第7页
第7页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第8页
第8页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第9页
第9页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第10页
第10页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第11页
第11页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第12页
第12页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第13页
第13页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第14页
第14页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第15页
第15页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第16页
第16页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第17页
第17页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第18页
第18页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第19页
第19页 / 共20页
CMHKOASDWEB服务Word文件下载.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

CMHKOASDWEB服务Word文件下载.docx

《CMHKOASDWEB服务Word文件下载.docx》由会员分享,可在线阅读,更多相关《CMHKOASDWEB服务Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。

CMHKOASDWEB服务Word文件下载.docx

修改补充

检查定稿

 

目录

1引言3

1.1目的3

1.2范围3

1.3读者对象3

1.4参考资料3

1.5术语与缩略语3

2需求概述3

3需求分析4

4设计策略4

4.1设计约束4

4.2SOAP消息4

4.2.1不带附件6

4.2.2带附件7

4.3JAXM消息发送模型7

4.4JAXM编码实现9

4.4.1客户端9

4.4.2服务器端10

4.5附件处理11

4.5.1增加附件11

4.5.2处理附件12

4.6中文问题12

4.6.1消息内容12

4.6.2中文名附件12

5系统总体结构14

6环境的配置14

6.1开发环境的配置14

6.2运行环境的配置14

6.3测试环境的配置14

6.3.1客户端14

6.3.2服务器端15

7网络资源15

1引言

1.1目的

在各个应用系统之间互通消息,比如OA系统到OA系统,OA系统到档案系统等其他系统。

1.2范围

适应所有支持Http协议的应用系统。

1.3读者对象

开发人员,设计人员,测试人员,用户

1.4参考资料

资料名称[标识符]

出版单位

作者

日期

1.5术语与缩略语

缩写

原文

中文释意

EZ-OSSP

EZ-CMM/OSSP(OrganizationStandardSoftwareProcess)

EZCROSSCMM机构标准软件过程

WS

WebService

Web服务

JAXM

JavaAPIforXMLMessaging

处理xml消息的javaAPI

JAX-RPC

JavaAPIforXML-basedRPC

基于xml的远程过程调用的javaAPI

SAAJ

SOAPwithAttachmentsAPIforJava

处理soap附件的javaAPI

SOAP

SimpleObjectAccessProtocol

简单对象访问协议

2需求概述

招商局集团OA系统要与其他许多系统进行对接,也就是互相通信。

例如:

◆集团OA系统发一篇公文信息到招商国际OA系统

◆统一用户管理系统发消息到各个OA系统

◆OA系统到档案系统

这些都要求不需要直接登录到目标系统,比如:

集团OA系统发一篇公文信息到招商国际OA系统,集团OA系统的公文信息发送者并不需要登录到招商国际OA系统(目标系统)。

3需求分析

一个应用系统A往另一个应用系统B发送消息,A是消息发送者,B是消息接收者,这个过程就是单向通信的过程,如果A要求B返回消息的话,那么这个过程就是双向通信的过程。

这种通信过程符合客户端/服务器端通信模型。

A是客户端,B是服务器端,同样A也可以作为服务器端,B作为客户端。

与招商局集团OA系统互相通信的各个应用系统都建立在Http协议上,在他们之间建立统一的通信模式适合采用WEBSERVICE技术。

WEBSERVICE技术是通过Http协议,在客户端与服务器端之间互相传送xml数据,客户端并不需要登录到服务器端,只需要获得对服务器端提供的Web服务的访问权,通常服务器端提供的Web服务都是公开的。

详细说明请参考【WebService解析.doc】

4设计策略

客户端与服务器端通过WEBSERVICE技术进行通信,消息的格式是xml数据,使用的是soap协议进行封装xml数据,可以称之为soap消息。

客户端发送的消息是soap消息,服务器端接收的消息也是soap消息,服务器端返回的消息也是soap消息。

Soap是一个基于XML的用于应用程序之间通信数据编码的传输协议,是新一代跨平台、跨语言分布计算WebServices的重要部分。

详细说明请参考【SOAP解析.doc】

4.1设计约束

招商局集团OA系统是采用java技术开发的,在java平台下开发WebService有以下三个方向:

ApacheAxis、JAX-RPC、JAXM。

◆ApacheAxis一种实现soap协议的引擎,建立在ApacheSoap项目的成果之上。

◆JAX-RPC基于XML的远程过程调用,在JAVA平台上构建互操作Web服务。

◆JAXMJavaAPIforXMLMessaging,处理xml消息的JavaAPI。

用JAXM开发WebService简单易懂,快捷迅速,目前暂定JAXM开发WebService。

4.2SOAP消息

SOAP消息遵循xml规范,包含一个Envelope,而Envelope包含零至多个header以及一个body。

◆Envelope是XML文档的根元,为以下内容提供了了一个容器:

控制信息,消息的收件人,消息本身。

◆header包含控制信息,例如服务属性

◆body包含消息标签以及它的参数,其中的消息标签可以包含自定义xmlDTD或xmlschema的元素。

请参考xml网站。

◆SOAP消息有两种类型,分为不带附件和带附件。

◆举例说明SOAP消息内容格式

.没有带附件:

//soap消息结构头,说明soap消息内容是什么类型。

------=_Part_1_25788693.1111128679954

Content-Type:

text/xml;

charset=UTF-8

Content-Transfer-Encoding:

binary

Content-Id:

<

A89B372213A6DA647DEA57D1ECB5FB17

//soap消息内容,为标准的xml文档。

上面必须空一行。

<

?

xmlversion=”1.0”encoding=”UTF-8”?

>

soap-env:

Envelopexmlns:

soap-env="

http:

//schemas.xmlsoap.org/soap/envelope/"

Header/>

Body>

prefix:

rootxmlns:

prefix="

URI"

example>

SUNW<

/prefix:

root>

/soap-env:

Envelope>

.带附件:

image/gif

1Folder.gif>

//上面必须空一行。

GIF89a雽眯柪览呵尐穜€€€wx$_?

炋(p:

摱煝`u"

_歋b钡~__唞M鏋a!

?

蠍製;

&

4.2.1不带附件

图-1不带附件的SOAP消息

其中Header和SOAPFault是可选的,Header可以多个,Body只有一个,如果有SOAPFault,那么它一定在SOAPBody后面。

4.2.2带附件

图-2不带附件的SOAP消息

附件可以为零个或多个,在SOAPPart部分之后。

4.3JAXM消息发送模型

JAXM使用SOAP消息在消息客户端和服务端传送消息,消息发送连接有两种类型,一种是SOAPConnection,另一种是ProviderConnection。

前者是一种点对点的消息发送模型,后者需要通过MessageProvider来把消息传送到目标。

图-3单向和双向的消息传送方式

不使用MessageProvider,可以带来一些便利,比如:

客户端可以是一般的J2SE程序;

不需要额外的配置。

但是,不使用MessageProvider也有以下的限制:

只能发送request-response类型的消息;

客户端只能是客户端的角色。

用点对点的消息传送方式,调用过程如-4所示

图-4JAXM调用过程

4.4JAXM编码实现

JAXM包提供了开发客户端和服务器端WebService的API。

可以到Sun网站上下载。

4.4.1客户端

(一)创建SOAP连接

(二)创建SOAP消息

(三)填充SOAP消息

(四)发送SOAP消息

(五)处理返回的SOAP消息

一个简单的例子(点对点):

publicclassClientSendMessageServletextendsHttpServlet{

publicvoiddoGet(

HttpServletRequestreq,

HttpServletResponseresp)throwsServletException{

//创建SOAP连接

SOAPConnectionFactoryscf=SOAPConnectionFactory.newInstance();

SOAPConnectioncon=scf.createConnection();

//创建SOAP消息

MessageFactorymf=MessageFactory.newInstance();

SOAPMessagemsg=mf.createMessage();

//填充SOAP消息

SOAPPartsp=msg.getSOAPPart();

SOAPEnvelopeenvelope=sp.getEnvelope();

SOAPHeaderhdr=envelope.getHeader();

SOAPBodybdy=envelope.getBody();

SOAPBodyElementgltp=bdy.addBodyElement(

envelope.createName(“root”,”prefix”,”uri”));

gltp.addChildElement(envelope.createName(

“example”,”prefix”,”uri”)).addTextNode("

SUNW"

);

//发送SOAP消息

//服务器端提供WebService的URL地址

URLurlEndpoint=newURL(“Http:

//localhost:

82/WS/receiver”);

//发送SOAP消息,同时获得应答的SOAP消息

SOAPMessagereply=con.call(msg,urlEndpoint);

//处理返回的SOAP消息,输出到控制台

reply.writeTo(System.out);

}

其简单的UML图如下

图-5客户端servlet

4.4.2服务器端

(一)处理客户端发过来SOAP消息

(二)创建应答SOAP消息

(三)填充应答SOAP消息

(四)返回应答SOAP消息

publicclassServerReceiveMessageServletextendsJAXMServletimplementsReqRespListener{

publicSOAPMessageonMessage(SOAPMessagemessage){

//把客户端发过来的SOAP消息输出到控制台

message.writeTo(System.out);

//创建应答SOAP消息

//填充应答SOAP消息

SOAPEnvelopeenv=msg.getSOAPPart().getEnvelope();

env.getBody().addChildElement(

env.createName("

Response"

)).addTextNode("

Thisisaresponse"

//返回应答SOAP消息

retrunmsg;

图-6服务器端servlet

4.5附件处理

SAAJ(SOAPwithAttachmentsAPIforJava)包提供了处理SOAP消息附件的各种方法。

4.5.1增加附件

//附件所在URL地址,比如:

URLurl=newURL(data);

AttachmentPartap=msg.createAttachmentPart(newDataHandler(url));

//设置附件的mime类型,比如:

image/gif

ap.setContentType(type);

//设置附件的标识ID,比如:

xx.gif。

如果不自定义,SOAP会赋给一个随机数。

ap.setContentId(name);

//确定增加附件

msg.addAttachmentPart(ap);

另:

也可以采用以下方式增加附件

//指定附件大小为1M

byte[]bytes=newbyte[1024000];

InputStreamin=newFileInputStream("

test.jpg"

in.read(bytes);

ByteArrayInputStreamstream=newByteArrayInputStream(bytes);

ap.setContent(stream,"

image/jpeg"

ap.setContentId("

test_content"

msg.addAttachmentPart(attachment);

4.5.2处理附件

//迭代多个附件

Iteratorit=msg.getAttachments();

while(it.hasNext()){

//取得单个附件

AttachmentPartap=(AttachmentPart)it.next();

//取得附件的输入流,然后根据需要作相应的处理。

InputStreamin=ap.getDataHandler().getInputStream();

4.6中文问题

在消息发送和接收过程中,必然会遇到中文问题,一是消息的内容的中文问题,二是附件的中文问题。

下面就这两个方面的中文问题作一些讨论。

4.6.1消息内容

可以采用Base64编码对中文内容进行封装发送,对应地,接收到消息后,对存在的Base64内容进行Base64解码,还原成中文内容。

◆对中文编码sun.misc.BASE64Encoder.encode(byte[]bytes),返回String

◆解码还原成中文sun.misc.BASE64Decoder.decodeBuffer(Stringstr),返回byte[]数组

4.6.2中文名附件

如果用URL来指定附件的位置,那么URL所在Web服务器必须支持中文名文件浏览,也就是说:

输入Http:

82/WS/中文.doc,要弹出提示是否下载,不能是找不到路径。

◆Web服务器配置以支持中文名文件浏览

例:

Tomcat的配置

修改$Tomcat_Home/conf/server.xml文件,找到提供Http服务那段配置,通常是

<

connectorport=”8080”…/>

在该元素加上一个属性,URIEncoding=”UTF-8”,如下:

connectorport=”8080”…URIEncoding=”UTF-8”/>

◆对URL的内容编码处理

//比如:

附件的url地址为Http:

82/WS/中文.doc

URLurl=newURL(toUtf8String(“Http:

82/WS/中文.doc”));

函数toUtf8String源码如下:

/**

*将文件名中的汉字转为UTF8编码的串.

*@params原文件名

*@return重新编码后的文件名

*/

publicstaticStringtoUtf8String(Strings){

StringBuffersb=newStringBuffer();

for(inti=0;

i<

s.length();

i++){

charc=s.charAt(i);

if(c>

=0&

c<

=255){

sb.append(c);

}else{

byte[]b;

try{

b=Character.toString(c).getBytes("

utf-8"

}catch(Exceptionex){

System.out.println(ex);

b=newbyte[0];

}

for(intj=0;

j<

b.length;

j++){

intk=b[j];

if(k<

0)k+=256;

sb.append("

%"

+Integer.toHexString(k).

toUpperCase());

}

returnsb.toString();

}

5系统总体结构

图-7系统总体结构

6环境的配置

6.1开发环境的配置

类别

标准配置

最低配置

计算机硬件

笔记本电脑T22或T23系列

软件

WindowsXP,eclipse,j2sdk1.4.2,tomcat5

网络通信

Tcp/ip

其他

版本管理器(VSS,CVS)

6.2运行环境的配置

Sun服务器

Solaris,oracle9i,tomcat5,j2sdk1.4.2

6.3测试环境的配置

6.3.1客户端

◆安装一个jsp/servlet容器,比如tomcat,websphere等。

◆配置servlet

6.3.2服务器端

7网络资源

◆Sun网站Http:

//

◆Ibm网站Http:

◆Xml网站Http:

//www.w3c.org/xml

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2