java利用cxf做客户端调用.net axis服务器

最近,由于要用到某公司提供的webservice实现的api接口,他们采用的是axis技术,我这边刚开始采用的是axis,遇到各种问题,不是接口不通,就是传参有问题,于是我选择了cxf来调用.net axis服务端的接口。还别说还成功了。
一、.net服务端代码

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://www.my.com/Rpc")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () {

        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

    [WebMethod]
    public string HelloWorld(string name) {
        return "Hello World" + name ;
    }

}

二、在写java代码之前需要做的准备
1.下载apache cxf的包,如apache-cxf-3.1.12.zip,地址:cxf.apache.org/download.html

2.解压apache-cxf-3.1.12.zip至某一目录,如D:\apache-cxf\apache-cxf-3.1.12
3.进入D:\apache-cxf\apache-cxf-3.1.12\bin 目录,启动命令行(进入当前目录的黑窗口)
执行–>>
D:\apache-cxf\apache-cxf-3.1.12\bin>wsdl2java -p com.zkrj.wl.health.controller.w
ebservice -d D:\apache-cxf\cxf -client http://z.yy.com.cn/zkAccount.asmx?wsdl
-p 指定其wsdl的命名空间,也就要生成的包目录:(这个随便吧,写啥都行,例如:com.baidu)
-d 指定要产生代码所在目录 (本地随便建个文件夹)
-client 生成客户端测试web service的代码
-server 生成服务器启动web service的代码
-impl 生成web service的实现代码
-ant 生成build.xml文件
-all 生成所有开始端点代码
4.注意:上面操作完成,在本地目录找到接口文件,只有写接口的那个文件有用。把文件拉进项目工程里。ok!

三、运行java客户端代码

public static void main(String[] args) {
        JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean();
        svr.setServiceClass(ZkAccountSoap.class);
        svr.setAddress("http://z.yy.com.cn/zkAccount.asmx?wsdl");
        ZkAccountSoap hw = (ZkAccountSoap) svr.create();
        String helloWorld = hw.helloWorld("qwe");
        System.out.println(helloWorld);
    }

四、补充。
pom.xml配置,这里只有cxf相关的包


<!-- 添加cxf支持  -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-core</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-bindings-soap</artifactId>
            <version>${cxf.version}</version>
        </dependency>

猜你喜欢

转载自blog.csdn.net/qq_35123802/article/details/77247145