axia2框架 关于wsdl文件操作 服务-客户端之间的建立

axia2框架 关于wsdl文件操作 服务-客户端之间的建立1 在本工程下新建一个类 用于生成 wsdl 文件 2 把 class 文件 带上文件目录 放到 axis2 的 bin 目录下 执行生成 wsdl 的 bat 命令 编译后的 在 tomcat 底下找 然后在 axia2 的 bin 目录下 打开 cmd 进行以下命令操作 样例

大家好,我是讯享网,很高兴认识大家。


1、在本工程下新建一个类,用于生成wsdl文件:
2、把class文件(带上文件目录)放到axis2的bin目录下,执行生成wsdl的bat命令。(编译后的---在tomcat底下找,然后在axia2的bin目录下,打开cmd,进行以下命令操作)
样例:
java2wsdl -cp ChnlAgentSignRemainImpl.class -cn com.asiainfo.webservices.ChnlAgentSignRemainImpl -classpath "D:\software\axis2-1.4.1\bin" -of ChnlAgentSignRemainImpl.wsdl
(补充:这里的com.asiainfo.webservices.ChnlAgentSignRemainImpl意思是将.class文件放置axia2的bin目录下的com.asiainfo.webservices路径下-此时需要自己创建这个目录,可以自己自定义路径
       这里的ChnlAgentSignRemainImpl.wsdl意思是生成你想生成对应的.wsdl文件
)
3、得到wsdl文件(注意文件大小不为0kb,否则以上步骤不成功)后,再基于wsdl文件生成axis2框架下的服务端/客户端实现类(在axia2的bin目录下,打开cmd,进行以下命令操作)
样例:
wsdl2java -uri ChnlAgentSignRemainImpl.wsdl -ss -ssi -sd -g -o ChnlAgentSignRemain
( 这里的ChnlAgentSignRemainImpl.wsdl 为2步骤生成的wsdl文件,ChnlAgentSignRemain为新建立的文件夹,命令自己会执行)

4、再将该类生成对应的stub结尾的类(在axia2的bin目录下,打开cmd,进行以下命令操作):
样例:wsdl2java -uri ChnlAgentSignRemainImpl.wsdl -p ChnlAgentSignRemainImpl -s -o stub (用于本地的)
      wsdl2java -uri ChnlAgentSignRemainImpl -p http://10.185.14.22:9090/com.asiainfo.webservices/ChnlAgentSignRemainImpl?wsdl  -s -o stub (用于线上的、联调的)
      
(补充:这里的ChnlAgentSignRemainImpl.wsdl为2步骤生成对应的.wsdl文件,ChnlAgentSignRemainImpl -s -o stub表示建立以Stub结尾命名的ChnlAgentSignRemainImpl类,即ChnlAgentSignRemainImplStub,
并存放在stub文件中)

5、打开3中生成的ChnlAgentSignRemain文件,将com底下的文件复制到自己工程对应的路径中
6、在eclipse工程中,在项目的 /WebRoot/WEB-INF/services底下创建一个文件夹,在该文件底下创建 META-INF 文件夹,将3中生成的ChnlAgentSignRemain文件下resources文件夹底下的.xml文件和.wsdl文件放在
 META-INF下,启动项目时,会自动扫描

7、首先要启动 整个工程,在浏览器上输入http://localhost:8083/GXMCC_ChannelSupport2/services/MaterialRequisitionService?wsdl 
(补充:GXMCC_ChannelSupport2为工程名称,services为/WebRoot/WEB-INF/services中的services路径,MaterialRequisitionService为该路径下 META-INF中的.wsdl文件)
若浏览器**问成功,则可以进行本地测试,试着调用自己在1步骤中创建的方法;


讯享网

8、接下来是Main函数测试,验证是否能调起服务:

在stub文件中,创建main函数:


    
public static void main(String[] args) {
        
        
        try {
            System.out.println("");
            ChnlAgentSignRemainImplStub stub = new ChnlAgentSignRemainImplStub("http://localhost:8083/GXMCC_ChannelSupport2/services/ChnlAgentSignRemainImpl");
            OI_SubmitContract  oI_SubmitContract14 = new OI_SubmitContract();
            com.asiainfo.webservices.xsd.ChnlAgentSignRemainParam contractParam = new com.asiainfo.webservices.xsd.ChnlAgentSignRemainParam();
            contractParam.setChange_id(111);
            contractParam.setOp_type("add");
            contractParam.setChnl_name("test111");
            
            oI_SubmitContract14.setParam(contractParam);
            
            
            ChnlAgentSignRemainImplSkeleton skeleton = new ChnlAgentSignRemainImplSkeleton();
            skeleton.OI_SubmitContract(oI_SubmitContract14).get_return();
            
//            OI_SubmitContractResponse res = stub.OI_SubmitContract(oI_SubmitContract14);
                
            
            
            System.out.println("---res.code--"+skeleton.OI_SubmitContract(oI_SubmitContract14).get_return());            
        } catch (AxisFault e) {
            e.printStackTrace();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    
    }

接下来让我们看下生成的逻辑层内部是怎么样的

 

运行main函数:看是否能调动:

成功!输出结果将 逻辑层内部 抛异常部分 输出来了。

小讯
上一篇 2025-01-28 11:10
下一篇 2025-02-16 14:18

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/65352.html