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

第三方调用U9服务说明(Java平台).docx

第三方调用U9服务说明(Java平台).docx_第1页
1/10
第三方调用U9服务说明(Java平台).docx_第2页
2/10
第三方调用U9服务说明(Java平台).docx_第3页
3/10
第三方调用U9服务(Java平台)一、Java环境搭建a)Jdk版本jdk-5_5_0_10b)apache-cxf-2.2.4c)开发工具Eclipsed)配置环境变量添加新变量ClASSPATH:值为“.;C:\ProgramFiles\Java\jdk1.5.0_10\lib\Tools.jar;C:\ProgramFiles\Java\jdk1.5.0_10\jre\lib\rt.jar”添加新变量Java_HOME:值为“C:\ProgramFiles\Java\jdk1.5.0_10”Path变量后追加:“C:\ProgramFiles\Java\jdk1.5.0_10\bin”说明:C:\ProgramFiles\Java\jdk1.5.0_10是jdk的安装目录e)UFIDAU9服务器二、引用U9服务以创建收货单服务为例,UFIDA.U9.ISV.RCV.ICreateRCVSRV.svca)验证服务是否可用如果能显示显示下面的图片说明服务可用b)生成代理类利用apache-cxf-2.2.4针对wsdl导出java客户端文件D:\apache-cxf-2.2.4\bin>wsdl2java-dd:\JavaService-verbosehttp://localhost/portal/services/UFIDA.U9.ISV.RCV.ICreateRCVSRV.svc?wsdl注明:-d<客户端代码输出路径>-verbose<服务地址>查看生成的文件:c)构架项目1.创建Java测试工程2.Copycxf生成客户端Java文件到工程目录3.新建类TestMain.java4.添加外部引用库Jar在项目上右键点属性5.修改服务地址Uri三、项目实现细节a)调用服务框架代码类似DotNet平台调用代码,主要是语法不同//开始调用ERP服务,“创建服务”org.tempuri.CreateRCVSRVStubcreateRcvsvclient=neworg.tempuri.CreateRCVSRVStub();org.ufida.UFIDAU9ISVRCVICreateRCVSRVcreatesv=createRcvsvclient.getBasicHttpBindingUFIDAU9ISVRCVICreateRCVSRV();//给头、明细赋值org.ufida.entitydata.ArrayOfUFIDAU9ISVRCVDTOOBAReceivementDTODatarCVList=createRCVList();//doResult就是返回结果。HolderdoResult=newHolder();HolderoutMessages=newHolder();try{//将入库单内容传入ERP(入和返的值,均作为此方法的参数)。//context验证信息,rCVList入的值,doResult方法返回值,createsv._do(context,rCVList,doResult,outMessages);System.out.println("Invokeend...");}catch(Exceptionex){//省略部分代码}b)上下文信息//创建当前上下文(相当于验证信息,这部分需灵活配置)StringIDForCompany="002";//当前企业编号LongIDForOrganization=newLong("1001007128961046");//当前组织IDLongIDForUsers=newLong("1001007176447429");//当前用户IDStringUserCode="demo";//当前用户编码//创建上下文环境Objectcontext=createContext(IDForCompany,IDForOrganization,IDForUsers,UserCode);//创建上下文环境privatestaticObjectcreateContext(Stringentid,longorgid,longuserid,Stringusercode){org.datacontract.schemas._2004._07.ufsoft_ubf_util.ObjectFactorycontextfactory=neworg.datacontract.schemas._2004._07.ufsoft_ubf_util.ObjectFactory();org.datacontract.schemas._2004._07.ufsoft_ubf_util.ThreadContexttc=contextfactory.createThreadContext();com.microsoft.schemas._2003._10.serialization.arrays.ObjectFactoryarrayFactory=newcom.microsoft.schemas._2003._10.serialization.arrays.ObjectFactory();ArrayOfKeyValueOfanyTypeanyTypecontextarray=arrayFactory.createArrayOfKeyValueOfanyTypeanyType();KeyValueOfanyTypeanyTypekv1=newKeyValueOfanyTypeanyType();kv1.setKey("EnterpriseID");kv1.setValue(entid);//填具体的企业编号contextarray.getKeyValueOfanyTypeanyType().add(kv1);KeyValueOfanyTypeanyTypekv2=newKeyValueOfanyTypeanyType();kv2.setKey("OrgID");kv2.setValue(orgid);//填具体的组织IDcontextarray.getKeyValueOfanyTypeanyType().add(kv2);KeyValueOfanyTypeanyTypekv3=newKeyValueOfanyTypeanyType();kv3.setKey("UserID");kv3.setValue(userid);////填具体的用户IDcontextarray.getKeyValueOfanyTypeanyType().add(kv3);KeyValueOfanyTypeanyTypekv4=newKeyValueOfanyTypeanyType();kv4.setKey("UserCode");kv4.setValue(usercode);//填具体的用户编码contextarray.getKeyValueOfanyTypeanyType().add(kv4);KeyValueOfanyTypeanyTypekv5=newKeyValueOfanyTypeanyType();kv5.setKey("CultureName");kv5.setValue("zh-CN");//当前语种contextarray.getKeyValueOfanyTypeanyType().add(kv5);tc.setNameValueHas(contextarray);returntc;}c)传入参数privatestaticorg.ufida.entitydata.ArrayOfUFIDAU9ISVRCVDTOOBAReceivementDTODatacreateRCVList(){org.ufida.entitydata.ObjectFactorydataFactory=neworg.ufida.entitydata.ObjectFactory();//创建DTO集合,也就是参数要求的对象。org.ufida.entitydata.ArrayOfUFIDAU9ISVRCVDTOOBAReceivementDTODatarcvDToArray=dataFactory.createArrayOfUFIDAU9ISVRCVDTOOBAReceivementDTOData();//DTO集合中的每个对象,都需要这样创建出来。UFIDAU9ISVRCVDTOOBAReceivementDTODataheaderData=dataFactory.createUFIDAU9ISVRCVDTOOBAReceivementDTOData();//表头赋值headerData.setSysState(ObjectState.INSERTED);//“新建”标记符XMLGregorianCalendartimeValue=newXMLGregorianCalendarImpl();timeValue.setYear(2010);timeValue.setMonth(4);timeValue.setDay(2);timeValue.setHour(10);timeValue.setMinute(35);timeValue.setSecond(30);headerData.setMBusinessDate(timeValue);//日期//单据类型UFIDAU9PMDTOsBESimp4UIDTODatadocType=dataFactory.createUFIDAU9PMDTOsBESimp4UIDTOData();docType.setMCode(dataFactory.createUFIDAU9PMDTOsBESimp4UIDTODataMCode("RCV01"));docType.setSysState(ObjectState.INSERTED);headerData.setMRcvDocType(dataFactory.createUFIDAU9ISVRCVDTOOBAReceivementDTODataMRcvDocType(docType));。。。。。//省略部分代码//对明细进行赋值UFIDAU9ISVRCVDTOOBARcvLineDTODatadetailsData=dataFactory.createUFIDAU9ISVRCVDTOOBARcvLineDTOData();detailsData.setSysState(ObjectState.INSERTED);detailsData.setMDocLineNo(10);//行号//料品UFIDAU9CBOSCMItemItemInfoDataItemInfoData=dataFactory.createUFIDAU9CBOSCMItemItemInfoData();ItemInfoData.setMItemCode(dataFactory.createUFIDAU9CBOSCMItemItemInfoDataMItemCode("1-01-0"));ItemInfoData.setSysState(ObjectState.INSERTED);detailsData.setMItemInfo(dataFactory.createUFIDAU9ISVRCVDTOOBARcvLineDTODataMItemInfo(ItemInfoData));//料品//最终价BigDecimalfinallyPrice=newBigDecimal("3200");detailsData.setMFinallyPriceTC(finallyPrice);。。。。。。。。//省略部分代码//将明细的值放入头中ArrayOfUFIDAU9ISVRCVDTOOBARcvLineDTODatam_m_detail=dataFactory.createArrayOfUFIDAU9ISVRCVDTOOBARcvLineDTOData();m_m_detail.getUFIDAU9ISVRCVDTOOBARcvLineDTOData().add(detailsData);headerData.setMRcvLines(dataFactory.createUFIDAU9ISVRCVDTOOBAReceivementDTODataMRcvLines(m_m_detail));//注意:任何参数的类型只要不是最简单类型,都应该通过Factory来创建。//一般这个类型在哪个包中,Facotry也会在同样的包中有一个ObjectFacotry的类型rcvDToArray.getUFIDAU9ISVRCVDTOOBAReceivementDTOData().add(headerData);returnrcvDToArray;}d)捕获异常//捕获服务中的异常。catch(org.ufida.UFIDAU9ISVRCVICreateRCVSRVDoServiceExceptionFaultFaultMessageex){//下面的代码可以将服务端的异常信息给显示输出来。ServiceExceptioned=ex.getFaultInfo();for(inti=0;i

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

碎片内容

第三方调用U9服务说明(Java平台).docx

您可能关注的文档

确认删除?
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
微信
  • 微信