SOAP 协议相关代码生成操作说明 1、 根据消息接口定义接口类 根据接口文档中定义的接口名、接口参数定义出接口类。 示例:ACC 提供给 MDMC 查询明细账接口。接口采用 SOAP 协议,接口服务为: http://BSSPCenter/acc/services/ BSSPAccMDSPService,接口方法为 queryUserBillDetail 需要定义出接口:BSSPAccMDSPService.java public interface BSSPAccMDSPService { public QueryUserBillDetailResponse queryUserBillDetail(String PseudoID, int QueryFlag, int billType, String BeginTime, String EndTime, String TransactionID, String BillStartStreamNo, int BillCount, String SignData); } 注意:如果该服务(BSSPAccMDSPService)中还定义了多个方法,都在这个 interface 中列 出来。QueryUserBillDetailResponse 等响应类需要自己构造,保证代码编译通过。 2、 生成WSDL 执行命令如下: java -cp .;../service/acc/lib/axis.jar;../service/acc/lib/commons-logging. jar;../service/acc/lib/commons-discovery.jar;../service/acc/lib/wsdl4 j.jar;../service/acc/lib/jaxrpc.jar;../service/acc/lib/saaj.jar org.apache.axis.wsdl.Java2WSDL -o BSSPAccMDSPService.wsdl -l"http://localhost/acc/services/BSSPAccMDSPService" com.huawei.itellin.acc.soap.BSSPAccMDSPService 注意:axis.jar 等 jar 包的路径根据实际情况而定,保证能找到各个 jar 包即可。 -o BSSPAccMDSPService.wsdl 是指生成的 wsdl 的名称为 BSSPAccMDSPService.wsdl。 -l http://localhost/acc/services/BSSPAccMDSPService 是指发布 soap 服务的路 径,具体实现中要和接口中的业务目录、服务名保持一致。 3、 根据WSDL生成SOAP服务代码 java -cp .;../service/acc/lib/axis.jar;../service/acc/lib/commons-logging. jar;../service/acc/lib/commons-discovery.jar;../service/acc/lib/wsdl4 j.jar;../service/acc/lib/jaxrpc.jar;../service/acc/lib/saaj.jar org.apache.axis.wsdl.WSDL2Java BSSPAccMDSPService.wsdl -S true 生成的文件包括: deploy.wsdd BSSPAccMDSPService.java BSSPAccMDSPServiceService.java BSSPAccMDSPServiceServiceLocator.java BSSPAccMDSPServiceSoapBindingSkeleton.java BSSPAccMDSPServiceSoapBindingStub.java 4、 部署soap服务 java -classpath .;../service/acc/lib/axis.jar;../service/acc/lib/commons-l ogging.jar;../service/acc/lib/commons-discovery.jar;../service/acc/li b/wsdl4j.jar;../service/acc/lib/jaxrpc.jar;../service/acc/lib/saaj.ja r org.apache.axis.client.AdminClient deploy.wsdd -lhttp://localhost/acc/services/ 注意:此处对应的http://localhost/acc/services/需要为实际系统的可用地址,否则 会找不到服务 部署成功后命令窗口显示: E:\acc\classes>java -classpath .;../service/acc/lib/axis.jar;../service/acc/lib/commons-lo gging.jar;../service/acc/lib/commons-discovery.jar;../service/acc/lib/wsdl4j.jar;../servic e/acc/lib/jaxrpc.jar;../service/acc/lib/saaj.jar org.apache.axis.client.AdminClient deploy .wsdd -l"http://localhost:8088/acc/services/" 2007-8-2 15:50:01 org.apache.axis.utils.JavaUtils isAttachmentSupported 警告: Unable to find required classes (javax.activation.DataHandler and javax.mail.interne t.MimeMultipart). Attachment support is disabled. Processing file deploy.wsdd <Admin>Done processing</Admin> 将deploy成功的deploy.wsdd更新原有的deploy.wsdd. 5、 查看服务 在IE浏览器中输入服务地址(http://IP:PORT/acc/services) ,显示如下 And now... Some Services ? ? ? AdminService (wsdl) o AdminService Version (wsdl) o getVersion BSSPAccMDSPService (wsdl) o queryUserBillDetail o querySPBill |
|