金蝶EASV75WebService开发指南文档格式.docx
- 文档编号:22817856
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:34
- 大小:436.46KB
金蝶EASV75WebService开发指南文档格式.docx
《金蝶EASV75WebService开发指南文档格式.docx》由会员分享,可在线阅读,更多相关《金蝶EASV75WebService开发指南文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
1.4.1.部署发布文件
发布成功以后,在临时目录里会生成一个wsdd文件和一个目录,例如:
D:
\webtest\AcctCussentCheckFacade.wsdd
\webtest\com\kingdee\eas\fi\gl\app\webservice\WSAcctCussentCheckFacadeSrvProxy.java
WSAcctCussentCheckFacadeSrvProxy.java文件拷贝到解决方案src目录中,注意包名和路径一致;
AcctCussentCheckFacade.wsdd处理方法如下:
找到解决方案的runtime\server\deploy\eas.ear目录,用解压缩软件打开web.war,进入WEB-INF目录
把AcctCussentCheckFacade.wsdd添加进去;
把AcctCussentCheckFacade.wsdd文件里的service节点内容添加到server-config.wsdd文件。
操作方法建议:
提取server-config.wsdd文件到临时目录,用编辑工具打开,再打开AcctCussentCheckFacade.wsdd,拷贝service节点内容粘贴到server-config.wsdd文件,注意XML格式一致;
保存server-config.wsdd文件并拷回到web.war压缩包里。
1.4.2.测试是否正确
上面的步骤操作完成后,快测已经可以看到新建的WebService。
通过浏览器输入服务的地址,访问服务是否正确
如输入:
http:
//server-ip:
port/ormrpc/services
BOS快测启动的默认端口为56898
1.4.3.部署到正式服务器
1、在BIM中部署代码和元数据;
2、把解决方案下改好的runtime\server\deploy\eas.ear\web.war文件拷贝到EAS服务器的server\deploy\eas.ear目录中,
3.将生成的WebService的java代码编译为class,放在EAS服务器的eas\server\deploy\eas.ear\web.war\WEB-INF\class下,把发布的wsdd文件中服务部分拷贝到server-config.wsdd中。
4.重启EAS服务器
1.4.4.Web工程目录及文件截图
1.5.客户端代码
1.5.1.获取wsdl服务描述文件
WebService已经成功部署到应用服务器上(本文以Apusic为例进行说明),客户端可以通过浏览器访问到已部署的WebService。
要构建相关的客户端,就要获取已经部署的WebService的相应的WSDL文件,用鼠标右键点击蓝色的部分“(wsdl)”,选取“目标另存为”菜单,这时将出现选择保存文件位置的对话框,在文件名处将文件的后缀名由xml改为wsdl,将wsdl文件保存至本地。
1.5.2.下载工具
通过www.eclipse.org下载eclipse(下载j2ee版本)或通过命令行来生成
java-Djava.ext.dirs=liborg.apache.axis.wsdl.WSDL2Java
其中lib是axis包目录生成客户端代码。
1.5.3.建立一个新工程
例如建立一个工程名为GenerateWSClient的Java工程:
将获取到的WSDL文件拷贝到工程的根目录下
用鼠标右键点击要生成客户端的WSDL文件,选取菜单“WebServices”-“GenerateClient”
将会弹出生成客户端向导
如图,使用默认值,点击“Next>
”,进入下一步:
依然使用默认值,点击“Next>
依然使用默认值,点击“Finish”,即可生成相应的客户端工程(是一个Web工程)
1.5.4.使用java客户端
新生成的工程中有一个JavaSource目录,我们要使用的java代码就位于这个目录,例如上图中的WSLoginProxy.java。
以下是一个使用Java客户端的例子:
importjava.rmi.RemoteException;
importcom.kingdee.WSLoginProxy;
//此为发布的代码
importcom.client.WSContext;
publicclassLoginTest{
publicstaticvoidmain(String[]args){
try{
WSLoginProxyproxy=newWSLoginProxy();
/**
*webservice客户端登陆
*userName用户名
*password密码
*slnNameeas
*dcName数据中心,对应的是dataCenter中数据中心id
*language语言L2简体
*dbType数据库类型0:
sqlServer1:
db22:
oracle
*authPattern验证方式默认"
BaseDB"
;
其他认证方式KEY可从easAuthPatterns.xml中获取
*/
WSContextctx=proxy.login("
用户"
"
"
eas"
数据中心id"
L2"
0);
//成功登录后打印sessionId
System.out.println(ctx.getSessionId());
//调用凭证业务webservice方法importVoucher(凭证引入),请看1.55节
}
catch(RemoteExceptione){
e.printStackTrace();
}
}
}
1.5.5.importVoucher(凭证引入
1、凭证引入接口,两个接口方法都可用,且用法一致
2、凭证webService接口生成客户端,可参考EASLogin方法
3、凭证引入参数:
importVoucher(wsvoucher[],intisVerify,intisCashflow)
●传参数第1个:
WSWSVoucher[]普通对象数组,见构造EAS凭证字段以及含义说明
●传参数第2个:
isverify
0不核销,暂存
1核销,暂存
2不核销,提交
3核销,提交
●传参数第3个:
isImpCashflow
是否引入现金流量0不引入1引入
4、凭证引入代码调用说明
5、返回值String[][]
是一个长度为凭证数,宽度是5的字符串数据
宽度的定义:
外部系统凭证号,凭证字,会计年度,会计期间,处理信息,异常信息,金蝶凭证号
1.6.BOSwebservice安全性
1.6.1.BOSwebservice安全性概述
BOSwebservice安全有两种模式,启用安全性和不启用安全性,默认配置是不启用安全性。
1.6.2.不启用安全性
在不启用安全性,则访问业务webservice前,先成功调用EASLogin登陆的webservice服务,则系统将记住相关登陆信息,下次调用业务方法是,直接从服务器中获取相关登陆信息。
如果多次调用EASLoginwebservice服务,则以最后一次为准。
1.6.3.启用安全性
在启用安全性后,每次WEBSERVICE访问,必须带上相关的SessionID信息,如下红字部分。
系统将根据SOAP头中的SessionID信息,获取相关的上下文信息。
<
SOAP-ENV:
Envelopexmlns:
SOAP-ENV="
//schemas.xmlsoap.org/soap/envelope/"
xmlns:
SOAP-ENC="
//schemas.xmlsoap.org/soap/encoding/"
xsi="
//www.w3.org/2001/XMLSchema-instance"
xsd="
//www.w3.org/2001/XMLSchema"
m0="
//com.kingdee.eas.base.btp.app.BTPManager/isPropOwner/parameter/promote"
>
<
Header>
<
ns1:
SessionIdxmlns:
ns1="
ada894c0-8223-41dc-b816-61eb67dc38bd<
/ns1:
SessionId>
/SOAP-ENV:
Body>
m:
isPropOwnerxmlns:
m="
//com.kingdee.eas.base.btp.app.BTPManager/Service"
<
m0:
bosTypeString>
BF76D8D1<
/m0:
propName>
id<
/m:
isPropOwner>
Envelope>
1.6.4.如何安全性启用
一、修改eas\Server\eas\server\profiles\server1\config\webservice.propetties文件
isRomoteLocate=false
isRomoteUserCheck=true
二、修改eas\Server\eas\server\deploy\eas.ear\web.war压缩文件中
WEB-INF目录下server-config.wsdd文件
...
handlername="
Authenticate"
type=
"
java:
org.apache.axis.handlers.SimpleAuthenticationHandler"
/>
LoginHandler"
type="
com.kingdee.bos.webservice.LoginHandler"
transportname="
http"
requestFlow>
...
handlertype="
/requestFlow>
/transport>
1.7.EASLogin登陆webservice说明
1.7.1.EASLogin接口说明
EASLogin中有两个方法
方法一、
publicWSContextlogin(
StringuserName,
Stringpassword,
StringslnName,
StringdcName,
Stringlanguage,
intdbType)throwsAxisFault
方法二、publicWSContextlogin(
StringuserName,
Stringpassword,
StringslnName,
StringdcName,
Stringlanguage,
intdbType,
StringauthPattern)throwsAxisFault
参数说明:
userName:
登陆用户名
password:
登陆密码
slnName:
解决方案名称(通常为eas)
dcName:
数据中心number
language:
L1(英文)、L2(中文简体)、L3(中文繁体)
dbType:
数据中心数据库类型
0(MSSQLServer)、1(DB2UDB)、2(Oracle)
(历史遗留参数)
authPattern:
EAS的验证方式,在方法一种默然为BaseDB
1.7.2.EASLogin异常说明
在BOS6.2版本中,EASLogin登陆出错将会返回
失败返回报文
SOAP协议中soapenv:
Fault标签的相关说明
faultcode>
供识别故障的代码
faultstring>
可供人阅读的有关故障的说明
faultactor>
有关是谁引发故障的信息
detail>
存留涉及Body元素的应用程序专用错误信息
1.7.3.EASLogin和前面版本的差别
EASLogin在BOS6.2之前,登陆失败后,返回WSContext对象,当WSContext.sessionId是为null或空时,表明登陆失败,失败的具体日志信息在服务器日志中可以查看。
BOS6.2修改为当登陆失败,将返回Fault报文(通常客户端引擎代码会用异常方式表示),Fault中将包含具体的错误信息。
同时服务器日志中也会打印出错误日志。
1.8.webservice异常查看
webservice调用错误,将可以在EAS相应的系统日志中查看到相应的信息。
如$EASHOME//server/profiles/server1/logs/apusic.log.0
有的异常信息也会通过SOAP返回到客户端。
可参考返回SOAP的faultstring元素中的错误详细信息。
2.WebService客户端开发指南
2.1.前提条件
WebService已经成功部署到应用服务器上(本文以Apusic为例进行说明),客户端可以通过浏览器访问到已部署的WebService,例如通过以下地址访问到已部署的WebService:
//localhost:
6888/easws/services
2.2.获取WSDL文件
如上图所示,应用服务器已经部署了相关的WebService。
2.3.生成客户端
2.3.1.生成Java客户端
下面将以使用Eclipse3.1来生成java客户端为例进行说明。
Eclipse3.1可以到www.eclipse.org免费下载。
运行后,要为Eclipse配置至少一个相应的应用服务器,例如Tomcat5.5。
2.3.2.建立一个新工程
例如建立一个工程名为GenerateWSClient的Java工程:
2.3.3.将获取到的WSDL文件拷贝到工程的根目录下:
2.3.4.生成客户端
将会弹出生成客户端向导:
依然使用默认值,点击“Finish”,即可生成相应的客户端工程(是一个Web工程)。
2.4.使用java客户端
import_111._19._168._192.easwebservice.services.easlogin.WSLoginProxy;
importclient.WSContext;
/**
*@paramargs
*/
fanfan"
eas50"
l2"
所调用的方法中的参数可以从WebService提供者处获得。
2.5.生成C#客户端
在此,以MicrosoftVisualStudio.Net2003为例说明如何生成C#客户端。
用户在正确安装完MicrosoftVisualStudio.Net2003后,需要设置一个环境变量Path=C:
\ProgramFiles\MicrosoftVisualStudio.NET2003\SDK\v1.1\Bin,其中C:
\ProgramFiles\MicrosoftVisualStudio.NET2003是MicrosoftVisualStudio.NET2003的安装路径。
2.5.1.使用命令行
运行“cmd”,打开命令行窗口,并进入WSDL文件所在目录(在此为C:
\wsdl目录):
2.5.2.运行命令生成客户端
运行命令wsdlXXX.wsdl(XXX为wsdl文件的文件名),即可生成C#的WebService客户端代码:
输入途中命令,按回车键,即可自动生成C#客户端代码:
如上图所示,生成了一个文件WSLoginService.cs,这就是我们所需要的客户断代码
2.5.3.使用客户端代码
运行MicrosoftVisualStudio.NET2003,建立一个工程,将刚刚生成的WSLoginService.cs文件拷贝到工程的根目录,手工为该代码配置合适的命名空间:
这时就可以调用该客户端代码了。
例如以下代码:
usingSystem;
namespaceConsoleApplication1
{
///<
summary>
///SummarydescriptionforClass1.
/summary>
classClass1
{
///<
///Themainentrypointfortheapplication.
[STAThread]
staticvoidMain(string[]args)
{
WSLoginServiceproxy=newWSLoginService();
Console.WriteLine(ctx.sessionId);
Console.ReadLine();
3.webserviceFAQ
3.1.在EAS上如何发布一个webservice?
请看《BOS开发指南_WebService》文档
3.2.如何调用一个webservice?
请看《BOS开发指南_WebService客户端开发》文档
3.3.有哪些工具能够简单的测试webservice?
可采用xmlspy软件。
在SOAPà
CreatenewSOAPrequestà
选择wsdl文件,点击OKà
选择测试的方法à
在返回的SOAP报文中,输入相应的参数信息
在SOAPà
Sendrequesttoserver
xmlspy将访问服务,并列出返回的SOAP报文。
3.4.EASLogin服务登陆如何判断失败
在BOS6.2之前,EASLogin服务返回WSContext,当WSContext.sessionId是为null或空时,表明登陆失败,失败的具体日志信息在服务器日志中可以查看。
在BOS6.2登陆失败,返回SOAP报文则BODY为FAULT标签(即客户端webservice引擎将抛出异常)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 金蝶 EASV75WebService 开发 指南