添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>demo</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.4.RELEASE</version></parent><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><scope>true</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId><version>3.1.12</version></dependency></dependencies><build><plugins><!-- 由于maven默认使用的jdk与工程配置的jdk版本不一致,导致无法编译通过,通过该插件指定jdk版本 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><!-- maven-surefire-plugin 是maven里执行测试用例的插件,不显示配置就会用默认配置。这个插件的 surefire:test 命令会默认绑定maven执行的 test 阶段 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><!-- 跳过测试单元 true:跳过测试,false不跳过(默认)--><skip>true</skip></configuration></plugin></plugins></build>
</project>
服务端接口:
package com.example.demo.netbar.service;import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;@WebService(name = "NetbarService",  //@WebService:将该接口发布成WebService服务器
targetNamespace = "http://service.netbar.demo.example.com")   //命名空间为包名得倒叙
public interface NetbarService {@WebMethodString sayHello(@WebParam(name = "userName") String name);
}

服务端实现类:

package com.example.demo.netbar.service;import org.springframework.stereotype.Component;import javax.jws.WebService;@WebService(serviceName = "NetbarService"//服务名,targetNamespace = "http://service.netbar.demo.example.com"//报名倒叙,并且和接口定义保持一致,endpointInterface = "com.example.demo.netbar.service.NetbarService")//包名
@Component
public class NetbarServicesImpl implements NetbarService{@Overridepublic String sayHello(String name) {return "hello" + name;}
}

cxf配置:

package com.example.demo.netbar.service;import org.apache.cxf.Bus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import javax.xml.ws.Endpoint;@Configuration
public class cxfConfig {@Autowiredprivate Bus bus;@Autowiredprivate NetbarService netbarServices;@Beanpublic Endpoint endpoint() {EndpointImpl endpoint = new EndpointImpl(bus,netbarServices);endpoint.publish("/NetbarService");//接口发布在 /NetbarServices 目录下return endpoint;}}

发布之后,wsdl路径为:

http://localhost:8080/services/NetbarService?wsdl
wsdl信息:
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://service.netbar.demo.example.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="NetbarService" targetNamespace="http://service.netbar.demo.example.com">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://service.netbar.demo.example.com" elementFormDefault="unqualified" targetNamespace="http://service.netbar.demo.example.com" version="1.0">
<xs:element name="sayHello" type="tns:sayHello"/>
<xs:element name="sayHelloResponse" type="tns:sayHelloResponse"/>
<xs:complexType name="sayHello">
<xs:sequence>
<xs:element minOccurs="0" name="userName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sayHelloResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="sayHelloResponse">
<wsdl:part element="tns:sayHelloResponse" name="parameters"> </wsdl:part>
</wsdl:message>
<wsdl:message name="sayHello">
<wsdl:part element="tns:sayHello" name="parameters"> </wsdl:part>
</wsdl:message>
<wsdl:portType name="NetbarService">
<wsdl:operation name="sayHello">
<wsdl:input message="tns:sayHello" name="sayHello"> </wsdl:input>
<wsdl:output message="tns:sayHelloResponse" name="sayHelloResponse"> </wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="NetbarServiceSoapBinding" type="tns:NetbarService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="sayHello">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="sayHello">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="sayHelloResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="NetbarService">
<wsdl:port binding="tns:NetbarServiceSoapBinding" name="NetbarServicesImplPort">
<soap:address location="http://localhost:8080/services/NetbarService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

基于cxf的客户端调用webService接口:


/*** 方式1.代理类工厂的方式,需要拿到对方的接口*/@Testpublic void cl1() {try {// 接口地址String address = "http://localhost:8080/services/NetbarService?wsdl";// 代理工厂JaxWsProxyFactoryBean jaxWsProxyFactoryBean =  new JaxWsProxyFactoryBean();// 设置代理地址jaxWsProxyFactoryBean.setAddress(address);// 设置接口类型jaxWsProxyFactoryBean.setServiceClass(NetbarService.class);// 创建一个代理接口实现NetbarService cs = (NetbarService) jaxWsProxyFactoryBean.create();// 数据准备String userName = "Leftso";// 调用代理接口的方法调用并返回结果String result = cs.sayHello(userName);System.out.println("返回结果:" + result);} catch (Exception e) {e.printStackTrace();}}/*** 动态调用方式*/@Testpublic void cl2() {// 创建动态客户端JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();Client client = dcf.createClient("http://localhost:8080/services/NetbarService?wsdl");Object[] objects = new Object[0];try {// invoke("方法名",参数1,参数2,参数3....);objects = client.invoke("sayHello", "Leftso");System.out.println("返回数据:" + objects[0]);} catch (java.lang.Exception e) {e.printStackTrace();}}

遇到的问题:

1.启动服务时报错:

Cannot determine embedded database driver class for database type NONE

原因及解决办法:

webService :生成wsdl文件相关推荐

  1. php 生成wsdl工具,php中使用zendstudio 12为soapserver生成wsdl文件

    使用soap有两种方式:wsdl模式和non-wsdl模式, 采用non-wsdl模式,不必生成wsdl文件,比较方便直接,服务器端代码如下: class service { public funct ...

  2. WebService 之 WSDL文件 讲解

    http://blog.csdn.net/simbi/article/details/6254146 恩,我想说的是,是不是经常有人在开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用 ...

  3. [转]WebService 之 WSDL文件 讲解

    原文地址:http://blog.csdn.net/tropica/archive/2008/11/02/3203892.aspx 恩,我想说的是,是不是经常有人在开发的时候,特别是和第三方有接口的时 ...

  4. php生成wsdl文件,利用nusoap生成wsdl文件

    第一步,首先下载 nusoap.php 下载地址  http://sourceforge.net/projects/nusoap/files/nusoap/ server.php  文件 // Cre ...

  5. 使用SoapUI生成wsdl文件客户端(二)

    1.复制生成的文件到你的工程目录中,并创建一个测试类 2.测试类代码如下: import java.net.URL;public class TestClient {public static voi ...

  6. cmd 生成wsdl文件_.wsdl文件生成.cs文件

    1.打开VS文件命令行工具(一般在安装文件的Common7\Tools\Shortcuts下面例如[E:\VS2013安装程序\Common7\Tools\Shortcuts\VS2013 x64 本 ...

  7. webservice中wsdl文件说明

    wsdl文件结构分析 WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点, ...

  8. net 将WebService生成dll文件

    通过dll来引用webservice的方法 1.打开浏览器,然后写输入http://192.168.0.2/RentService.asmx?wsdl 2.然后选择浏览器->文件->另存为 ...

  9. cmd 生成wsdl文件_Spring Boot SOAP系列之WSDL是什么“Lese”

    相关历史文章(阅读本文之前,您可能需要先看下之前的系列 ) WebService SOAP概述 - 第275篇 WSDL是什么"Lese" - 第276篇 Spring boot ...

最新文章

  1. linux进程间通信-XSI IPC
  2. 马云牛啊 从骑自行车到坐迈巴赫只用20年
  3. 浅析移动端网站建设前都需要考虑哪些因素?
  4. python编程从入门到实践课后题答案-《Python编程:从入门到实践》课后习题及答案—第11章...
  5. hadoop的hdfs文件操作实现上传文件到hdfs
  6. HDU - 1255 覆盖的面积(线段树求矩形面积交 扫描线+离散化)
  7. java文件放桌面怎么运行不了,不可能使用Java桌面在网络上启动文件吗?
  8. 《C语言及程序设计》实践参考——当年第几天(数组方案)
  9. 图的顺序存储(邻接矩阵存储)【摘录自严长生老师的网站】
  10. date format 精辟讲解
  11. 食品安全事件曝光严重,SPC软件的应用刻不容缓
  12. 示波器wvf导入matlab,运动控制系统实验
  13. 【Android-File】Android文件的读写
  14. 曙光服务器I620-G10安装windows server 2012 教程,附raid卡驱动
  15. github 发布静态页面
  16. c语言程序设计第一次月考考试重点,为什么说初三第一次月考很重要
  17. Chrome (Google) 浏览器的快捷键大全
  18. 实体店运营:能提高顾客留存率的店铺陈列方式
  19. adb 前摄像头 调用_android: 调用摄像头拍照
  20. UnityVR--小程序7--坦克对战

热门文章

  1. OrCAD中常用元件在库中存放的位置(最近更新2012-7-30)
  2. python的语言特点软测工程师经历的各个阶段_测试开发相关JD
  3. Spring Boot 部署打包成 jar 和 war 有什么不同?
  4. 2016,上路了 就不难
  5. Oracle系列之八:SQL查询
  6. 8.5 代酷睿的 13 英寸旗舰 — Yoga S730 长测
  7. QClub广州站-3月1号下午活动开始报名啦
  8. python 3.8.2(32-bit)安装教程_Python 3.8.2详细图文安装教程(附安装包)
  9. 计算机关机打不开,电脑强行关机打不开怎么办
  10. ULN2003型达林顿管