cxf 生成 webservice 客户端

一、cxf 生成 webservice 客户端

1、接口路径 http://localhost:8080/cxfserver/webservice/userWS?wsdl

2、进入你需要放置 webservice 客户端代码的包,进入这个包所在的系统路径,进入 cmd

3、执行命令 wsimport -keep http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl 或者 wsdl2java -client http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

  3.1、如果报错信息如下:具有相同名称“xxx”的类/接口已经使用。

  wsdl2java -client http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

  改为

  wsdl2java -client -autoNameResolution http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

4、spring 整合 cxf

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
    <jaxws:client id="userClient"
        serviceClass="com.java.webservice.service.impl.ITianQi"   <!--生成的接口-->
        address="http://ws.webxml.com.cn/WebServices/WeatherWS.asmx">
    </jaxws:client>
</beans> 

二、httpclient 调用 webservice

public static String getXML() {
    StringBuffer sb = new StringBuffer();
    sb.append("<?xml version=‘1.0‘ encoding=‘utf-8‘?>"
            + "<soap:Envelope xmlns:xsi=‘http://www.w3.org/2001/XMLSchema-instance‘ xmlns:xsd=‘http://www.w3.org/2001/XMLSchema‘ xmlns:soap=‘http://schemas.xmlsoap.org/soap/envelope/‘>"
            + "<soap:Body>" + "<getMobileCodeInfo xmlns=‘http://WebXml.com.cn/‘>"
            + "<mobileCode>string</mobileCode>" + " <userID>string</userID>" + "</getMobileCodeInfo>"
            + "</soap:Body>" + "</soap:Envelope>");
    return sb.toString();
}
static int socketTimeout = 30000;// 请求超时时间
static int connectTimeout = 30000;// 传输超时时间

public static String doPost() {
    String postUrl = "http://ws.webxml.com.cn/WebServices/WeatherWS.asmx";
    String soapAction = "";
    String soapXml = getXML();
    String retStr = "";
    // 创建HttpClientBuilder
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
    // HttpClient
    CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
    HttpPost httpPost = new HttpPost(postUrl);
    // 设置请求和传输超时时间
    RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeout)
            .setConnectTimeout(connectTimeout).build();
    httpPost.setConfig(requestConfig);
    try {
        httpPost.setHeader("Content-Type", "application/soap+xml;charset=UTF-8");
        httpPost.setHeader("SOAPAction", soapAction);
        StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8"));
        httpPost.setEntity(data);
        CloseableHttpResponse response = closeableHttpClient.execute(httpPost);
        HttpEntity httpEntity = response.getEntity();
        if (httpEntity != null) {
            // 打印响应内容
            retStr = EntityUtils.toString(httpEntity, "UTF-8");
        }
        // 释放资源
        closeableHttpClient.close();
    } catch (Exception e) {
    }
    return retStr;
}

原文地址:https://www.cnblogs.com/fangwu/p/9300895.html

时间: 2024-12-31 03:27:16

cxf 生成 webservice 客户端的相关文章

axis在eclipse 中生成webservice客户端

可以使用axis提供的Java2WSDL功能生成所要发布类的 WSDL,步骤如下: 1.在你的eclipse或myeclipse的项目中找到你引 的 axis.jar包,打开它,在其里面找到 org.apache.axis.wsdl下面的Java2WSDL类,然后以 Java application方式运行一下它 2.打开菜单栏"run -->"Debug  ,在弹出框的左边找到"Java Application 项,在其里面你会看 到"Java2WSDL 子

使用CXF开发WebService客户端

前面一讲开发了webservice服务器端接口,今天的话,我们来开发webservice客户端,让大家来体验下过程: 首先建一个Maven项目,项目名字,WS_Client: 然后我们要用CXF给我们提供的工具wsdl2java 来根据请求的url生成客户端代码: wsdl2java工具在CXF开发包里: 开发下载地址:http://cxf.apache.org/download.html 下载二进制包,然后解压到D盘 这里我们看到了wsdl2java命令:当然要用的话,还得配置Path.我们打

CXF创建webservice客户端和服务端

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui0317/article/details/9320053 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.CXF框架是一种基于servlet技术的SOA应用开发

java之wsdl自动生成WebService客户端

在web项目中调用webservice接口,以及创建自己的webservice服务端 由于甲方的服务器并不在外网,编码环境是不能直接访问对方的webservice接口的,所以需要把wsdl文件下载到本地,在通过工具生成代理类. 用java的JDK自带命令wsimport -s . xxx.wsdl生成代理类 其中-s表示生成源代码,不指定的话只会生成.calss字节码文件 中间的点"."表示在当前路径 后面空格接上本地的wsdl文件或者URL,例如http://www.xxx.com/

根据wsimport命令生成webservice客户端

wsimport  -d  d:webservice -keep -verbose http://localhost:8888/ns?wsdl 命令参数说明: -d:生成客户端执行类的class文件的存放目录 -s:生成客户端执行类的源文件的存放目录 -p:定义生成类的包名 -keep 是定是否生成.java的源文件 -verbose显示生成详细的过程

用MyEclipse自带工具生成WebService客户端代码

本文章主要是介绍如何利用已经发布了的Webservice的wsdl来自动生成java的客户端代码.注意:本方法需要你采用的java版本是1.5或者以上的版本,采用MyEclipse来自动生成代码. wsdl:Web Services Description Language,网络服务描述语言,是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问. 对于已经发布了的Webservice,我们可以获得其wsdl,如访问:http://www.ayandy.com/S

Eclipse Maven生成WebService客户端代码及测试

条件: 1. Eclipse安装Axis2插件 2. 导入Web Service相关包 创建Maven项目 导入axis2相关jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 

JDK1.6 自动生成WebService客户端代码

到需要生成客户端代码的项目根目录下执行 wsimport -keep  http://localhost:8080/HelloService?wsdl 命令即可 http://localhost:8080/HelloService是服务端地址

Java工程使用axis的stub生成webservice客户端代码

Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService的代码. wsdl2java.bat命令可以在<Axis2安装目录>/bin目录中找到. 在使用wsdl2java.bat命令之前需要设置AXIS2_HOME环境变量,该变量值是<Axis2安装目录>.在Windows控制台输出如下的命令行来生成调用WebService的代码: %AXIS2_HOME%\bin\wsdl2java -uri [wsdl]  -p client -s