电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

金蝶EAS Cloud 金蝶EASWebservice开发教程.docx

金蝶EAS Cloud 金蝶EASWebservice开发教程.docx_第1页
1/21
金蝶EAS Cloud 金蝶EASWebservice开发教程.docx_第2页
2/21
金蝶EAS Cloud 金蝶EASWebservice开发教程.docx_第3页
3/21
④内部公开请勿外传目录BOSWebService........................................................................31.1.BOSWebService原理.........................................................31.2.发布WebService的约束.......................................................31.3发布WebService................................................................31.3.1新建façade..............................................................31.3.2配置façade..............................................................51.3.3发布façade..............................................................51.3.4发布webservice..........................................................71.3.5编写接口代码............................................................91.4BOSWebService部署.........................................................101.4.1本地部署................................................................101.4.2部署到正式服务器........................................................131.5webservice调用...............................................................131.5.1axis2方式调用..........................................................131.5.2http方式调用........................................................181.5.3cxf方式调用.........................................................181.5.4c#方式调用.............................................................181.6BOSwebservice安全性......................................................181.6.1BOSwebservice安全性概述..............................................181.6.2不启用安全性........................................................181.6.3启用安全性..........................................................181.6.4如何安全性启用......................................................192webserviceFAQ.....................................................................192.1报CannotfoundBusinessObjectbosType[6965344E]incache!错误................192.2本地可调用,部署到服务器后调用报错,CannotfoundBusinessObjectbosType[6965344E]incache!......................................................202.3报NoService错误............................................................202.4报Pleaseloginfirst错误....................................................202.5报Server.userException异常错误..............................................202.6串用户、串数据中心的问题.....................................................211/21④内部公开请勿外传文档编号:版本号:密级:公开金蝶EASWebservice开发教程金蝶软件(中国)有限公司作者:余路生版本号更新日期编制人审核人修改的章节号及内容12020-4-8余路生版权声明2/21④内部公开请勿外传本书著作权属于金蝶软件(中国)有限公司所有,在未经本公司许可的情况下,任何单位或个人不得以任何方式对本书的部分或全部内容擅自进行增删,改编,节录,翻译,翻印,改写。金蝶软件(中国)有限公司2015年8月BOSWebService1.1.BOSWebService原理Webservice主要由SOAP,WSDL,以及UDDI等几块技术组成,以XML格式进行数据的传输。是建立可互操作的分布式应用程序的新平台Webservice的一个最基本的目的就是提供在各个不同平台的不同应用系统的协同工作能力。使各个异构系统之间实现无缝交互。在本质上是要为应用程序之间提供数据通讯的标准,为企业应用之间动态地提供大颗粒度的服务,并不适合于非常精细的基于会话的方法调用以及复杂的事务(transaction)处理之中。1.2.发布WebService的约束在BOSStudio中发布webService时,只能发布Entity和Façade两种元数据类型成WebService服务端的代码。由于Entity或Façade函数参数和返回值可能包含很多复杂的业务类型,在发布时会生成许多辅助类,一些复杂类型在其他异构系统中生成webService客户端时不能很好的支持,因此建议在建立webService功能时,最好使用Façade,并且提供简单类型的输入和返回参数。1.3发布WebService1.3.1新建façade切换到设计视图,选择创建目录,右键选择新建->功能3/21④内部公开请勿外传4/21④内部公开请勿外传1.3.2配置façade切换到方法页签,添加方法,设置事务属性,返回值类型,添加参数,异常。常用事务属性说明:Supports:方法被调用时不会启动事务,但是支持上层调用方法启动事务,默认事务属性;Required:方法被调用时,如果上层调用方法未启动事务则本方法启动新事务;如果上层方法已经启动事务,则本方法不启动新事务;RequiredNew:方法被调用时,必定启动一个新事务;1.3.3发布façade选择façade,右键选择发布,在弹出的发布向导中勾选生成配置信息5/21④内部公开请勿外传6/21④内部公开请勿外传1.3.4发布webservice选择façade,右键选择发布WebService,在弹出的向导中,选择需要发布的方法,选择java发布目录、wsdl发布目录,勾选追加到配置文件。其中java目录选择工作空间项目的src目录,注意java目录没选对,则生成的代码文件目录会不正确。7/21④内部公开请勿外传8/21④内部公开请勿外传1.3.5编写接口代码切换到java视图,刷新代码,刷新代码后bos工具会自动生成webservice相关java文件,打开ControllerBean文件,重写以下划线_开头的方法9/21④内部公开请勿外传1.4BOSWebService部署1.4.1本地部署1.4.1.1添加wsdd文件在runtime->server->deploy->eas.ear目录下找到web.war文件,复制出来。然后用压缩软件打开,打开到WEB-INFO目录,将1.3.2.4步骤生成的wsdd文件拖动到WEB-INFO目录下10/21④内部公开请勿外传11/21④内部公开请勿外传1.4.1.2配置server-config.wsdd文件打开1.3.2.4步骤生成的wsdd文件,复制service节点内容到server-config文件中。再把web.war包替换项目中的web.war包1.4.3.3测试是否正确重启服务,访问http://localhost:56898/ormrpc/services,查看是否已生成。本地默认端口是56898,服务器默认端口是688812/21④内部公开请勿外传1.4.2部署到正式服务器方法与1.4.1相同,目录改为对应的server\deploy\eas.ear目录1.5webservice调用1.5.1axis2方式调用1.5.1.1保存wsdl文件访问http://IP:56898/ormrpc/services,找到OnlineOrder接口和Login接口,点wsdl进入查看,另存为.wsdl文件13/21④内部公开请勿外传1.5.1.2生成客户端代码新建java工程,把上个步骤生成的两个.wsdl文件复制到工程目录下,右键选择WebService->Generateclient->finish1.5.1.3整理生成的代码将生成的代码文件移动到一个统一的包下14/21④内部公开请勿外传1.5.1.4调用接口需要先调用登录接口才能调用业务接口,如果开启了安全性检验,则需要传sessionID。15/21④内部公开请勿外传importorg.apache.axis.client.Stub;publicstaticbooleanaddOnlineOrder()throwsException{StringsessionID=login();if(sessionID!=null){WSOnlineOrderInterfaceSrvProxyServiceLocatorlocator=newWSOnlineOrderInterfaceSrvProxyServiceLocator();WSOnlineOrderInterfaceSrvProxyproxy=locator.getWSOnlineOrderInterface();/**如果开启安全性校验,则必须传sessionID*/((Stub)proxy).setHeader("http://login.webservice.bos.kingdee.com","SessionId",sessionID);Stringjson="jsonStr";Stringflag=proxy.addOnlineOrder(json);/**退出登录*/logout();if("succuss".equals(flag)){returntrue;}16/21④内部公开请勿外传}returnfalse;}publicstaticStringlogin()throwsRemoteException,MalformedURLException,ServiceException{EASLoginProxyServiceLocatorloginLocator=newEASLoginProxyServiceLocator();EASLoginProxyloginProxy=loginLocator.getEASLogin();WSContextcontext=loginProxy.login(LoginUtil.userName,LoginUtil.password,LoginUtil.slnName,LoginUtil.dataCode,LoginUtil.language,LoginUtil.dbType);System.out.println("-------sessionID------"+context.getSessionId());returncontext.getSessionId();}publicstaticbooleanlogout()throwsRemoteException,MalformedURLException,ServiceException{EASLoginProxyServiceLocatorlocator=newEASLoginProxyServiceLocator();EASLoginProxyproxy=locator.getEASLogin();returnproxy.logout(LoginUtil.userName,LoginUtil.slnName,LoginUtil.dataCode,LoginUtil.language);}publicclassLoginUtil{/**用户名*/publicstaticStringuserName="jiekou";/**密码*/publicstaticStringpassword="123456";/**解决方案名称(通常为eas)*/publicstaticStringslnName="eas";/**数据中心代码(可在服务器控制台查看)*/publicstaticStringdataCode="qfeas180413";/**语言(L1繁体L2简体L3英语)*/publicstaticStringlanguage="L2";/**数据库类型(0:sqlServer1:db22:oracle)*/publicstaticintdbType=2;17/21④内部公开请勿外传/**接口IP*/publicstaticStringaddress="http://127.0.0.1:56898";}1.5.2http方式调用1.5.3cxf方式调用1.5.4c#方式调用1.6BOSwebservice安全性1.6.1BOSwebservice安全性概述BOSwebservice安全有两种模式,启用安全性和不启用安全性,默认配置是不启用安全性。1.6.2不启用安全性在不启用安全性,则访问业务webservice前,先成功调用EASLogin登陆的webservice服务,则系统将记住相关登陆信息,下次调用业务方法是,直接从服务器中获取相关登陆信息。如果多次调用EASLoginwebservice服务,则以最后一次为准。1.6.3启用安全性在启用安全性后,每次WEBSERVICE访问,必须带上相关的SessionID信息,如下红字部分。系统将根据SOAP头中的SessionID信息,获取相关的上下文信息。ada894c0-8223-41dc-b816-61eb67dc38bd18/21④内部公开请勿外传BF76D8D1id1.6.4如何安全性启用一、修改eas\Server\eas\server\profiles\server1~N\config\webservice.propetties文件isRomoteLocate=false。(没有则添加)(修改完后,需将apusic\domains\server1~N(所有实例)\deploy这个缓存目录清空,然后把所有实例执行重新部署应用操作)2webserviceFAQ2.1报CannotfoundBusinessObjectbosType[6965344E]incache!错误答:这是因为发布后,接口没有在facade_pkmapping.properties注册,可以重新发布。若还是不能生成,可以手动添加。如6965344E2=com.kingdee.eas.hse.scm.service.app.OnlineOrderInterface注意deloy_metas和metadata目录下的facade_pkmapping.properties文件均需注册2.2本地可调用,部署到服务器后调用报错,CannotfoundBusinessObjectbosType[6965344E]incache!答:这是因为发布后,只在deploy_metas目录下的facade_pkmapping.properties注册,metadata目录下没注册,需要把6965344E2=com.kingdee.eas.hse.scm.service.app.OnlineOrderInterface拷贝过去19/21④内部公开请勿外传2.3报NoService错误答:server-config.wsdd文件配置节点错误或没有wsdd文件,也可能是别的接口没有配置正确或没有wsdd文件,注意检查2.4报Pleaseloginfirst错误答:检查用户账号、密码、数据中心代码等登陆信息是否正确2.5报Server.userException异常错误答:可能是启用了安全性校验,但是调用接口时没有传sessionID,也可能是修改安全性校验配置时,没有清空这个目录下的缓存apusic\domains\server1~N(所有实例)\deploy。20/21④内部公开请勿外传2.6串用户、串数据中心的问题答:没有启用安全性校验,请参照1.6.3来配置21/21

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

金蝶EAS Cloud 金蝶EASWebservice开发教程.docx

管理软件+ 关注
实名认证
内容提供者

管理软件资料分享

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信