webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

时间:2022-09-05 20:52:34

webService学习之路一:讲解了通过传统方式怎么发布及调用webservice

webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice

本篇文章将讲解SpringMVC+CXF环境下,怎么调用其他系统通过webService方式暴露出来的接口

① 为避免怀疑同一个项目中调用本项目的接口,这里我新打开一个eclipse通过最原始的方式发布了一个webservice并启动保证可以被访问

webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

打开浏览器确认可以被访问

webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

②进入CXF/bin 利用wsdl2java工具将webService接口转换为可供调用的java类。调用方式wsdl2java   XXXXX?wsdl

webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

执行完成后,你会发现bin目录下多了一个文件夹,文件夹路径和接口包路径一致

webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

③ 将生成的java文件拷贝到需要调用接口的项目中,请注意保持包的路径一致。

webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

④ 接口的调用,前面的都是准备工作。 o(∩_∩)o

继webService学习之路二基础上,集成好CXF后并保证xml中命名空间都已经正确

在applicationContext.xml中添加如下配置:

<import resource="classpath:META-INF/cxf/cxf.xml" />

    <!-- 注意:serviceClass为接口类并非实现类 -->
<!-- <jaxws:server serviceClass="com.xiaochangwei.web.service.WebserviceTest"
address="/webSerciceTest_service_jaxws"></jaxws:server> --> <!-- 注意:implementor为接口的具体实现类 -->
<!-- <jaxws:endpoint implementor="com.xiaochangwei.web.service.impl.WebServiceTestImpl"
address="/webSerciceTest_endpoint" ></jaxws:endpoint> --> <jaxws:client id="webServiceBean" serviceClass="webservice.server.Service"
address="http://localhost:9999/service" />

请注意address后面不需要添加?wsdl

⑤ 在Controller层写一个测试代码进行测试

package com.xiaochangwei.web.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import webservice.server.Service;
@Controller
@RequestMapping("webServiceTest")
public class WebServiceTestController { @Autowired
private Service webServiceBean; @RequestMapping("test")
public @ResponseBody String test(){ return webServiceBean.getWelcome("xiaochangwei");
}
}

后经自己折腾发现,controller这里的名字不需要和xml中的一致,因为采用的是ioc, by tye吧

⑥ 打开浏览器见证奇迹的时刻到了

webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

并且查看接口发布端,控制台也打印出了 service called   。至此,调用webService接口结束。

怎么能这么顺利的就完成了,喜欢折腾的我怎么可能不折腾下. 经过折腾发现

① controller中注入的接口实例名称可以和xml中的不一样,因为采用的是ioc by type, 最开始我还以为和普通bean getbean(id)不同,必须一样呐

package com.xiaochangwei.web.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import webservice.server.Service;
@Controller
@RequestMapping("webServiceTest")
public class WebServiceTestController { @Autowired
private Service service; @RequestMapping("test")
public @ResponseBody String test(){ return service.getWelcome("xiaochangwei ok");
}
}

这样也是可行的

② xml配置中,我以为可以不指定id,因为我们不用getbean(id)进行调用,经折腾发现,id是必须的 否则报 Id is required for element 'client' when used as a top-level tag

③ 我想去掉xml中的jaxws:clent 配置,而直接在生成的接口service.java 文件上增加@Component 或者 @Service来进行注入,经尝试失败了,不过我还会继续折腾的

每天折腾一点点

噢 错了,是每天进步一点点

至此 webservice学习之路全部完结,有不懂的地方和有错误的地方请及时告知我,共勉

未整理的源码下载:http://pan.baidu.com/s/1eSuIQxs (请勿用于商业项目,若需使用请完善,整理好的代码近期会更新上去)

webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口的更多相关文章

  1. springMVC集成CXF后调用已知的wsdl接口

    本文转载自:https://www.cnblogs.com/xiaochangwei/p/5400303.html 本篇文章将讲解SpringMVC+CXF环境下,怎么调用其他系统通过webServi ...

  2. springcloud学习之路&colon; &lpar;三&rpar; springcloud集成Zuul网关

    网关就是做一下过滤或拦截操作 让我们的服务更加安全 用户访问我们服务的时候就要先通过网关 然后再由网关转发到我们的微服务 1. 新建一个网关服务Module 2. 依然选择springboot工程 3 ...

  3. WebService 学习之路(一):了解并使用webService

    webService主要用于向其他系统提供接口以便调用,系统间可能开发语言等完全不同,根据约定的接口规范,调用者传递相关参数进行接口调用,服务方根据传入的条件进行业务处理并进行结果返回. webSer ...

  4. springboot 学习之路 3( 集成mybatis )

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  5. 学习之路三十九:新手学习 - Windows API

    来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...

  6. springboot 学习之路 6(集成durid连接池)

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  7. Springboot整合cxf后不能访问controller&comma;不能访问接口

    参考版本 springboot 1.4.X <=========> cxf-spring-boot-starter-jaxws 3.1.X springboot 1.5.X <=== ...

  8. Spring学习之旅&lpar;六&rpar;--SpringMVC集成

    对大多数 Java 开发来说,基于 web 的应用程序是我们主要的关注点. Spring 也提供了对于 web 的支持,基于 MVC 模式的 Spring MVC 能够帮助我们灵活和松耦合的完成 we ...

  9. WebService学习总结(四)--基于CXF的服务端开发

    本节将实践目前最流行的第二种web service 发布和调试框架  CXF Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩 ...

随机推荐

  1. 《Java应用程序(Application)》

    在编写Java应用程序(Application)时可以这样: 1,定义包名. 2, 导入相关的包. 3, 定义一个类. 4,定义相关变量. 5,定义构造函数.(在构造函数内调用init()方法和add ...

  2. java并发编程-Executor框架

    Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,Completion ...

  3. RMAN&lowbar;学习笔记3&lowbar;RMAN Catalog恢复目录

    2014-12-23 Created By BaoXinjian

  4. webView文本长按显示英文

    webView文本长按显示英文时,在info.plist文件中添加如下内容: <key>CFBundleLocalizations</key> <array> &l ...

  5. win8&period;1镜像制作

    使用自带的powerShell工具,以管理员身份运行,比如镜像的目标位置为F盘,那么用下面的命令即可, wbAdmin start backup -backupTarget:F: -include:C ...

  6. 全陷阱破解:在Linux环境下的Jenkins中持续集成Androidproject

    本方案以 RHEL / Centos 64位Linux操作系统为例,由于这是眼下最常见的server环境. 一.安装Java SDK. 建议,不要使用诸如yum之类的玩意自己主动安装,由于openJD ...

  7. java 生成条形码

    package com.sun.erwei; import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;impo ...

  8. cpp常用函数总结

    //sprintf sprintf(temp_str_result, "%lf", temp_double); result = temp_str_result; (*begin) ...

  9. js导航栏单击事件背景颜色变换

    <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...

  10. 使用loadrunner编写webservice接口请求

    1.使用工具: loadrunner12,本实例截图中都是loadrunner12工具 2.操作步骤: 1).新建脚本,选择Web Services协议: 2).选择工具栏: 3).点击Import, ...