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

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

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

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

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

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

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

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

④ 接口的调用,前面的都是准备工作。 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吧

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

并且查看接口发布端,控制台也打印出了 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学习之路: (三) 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,不能访问接口

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

  8. Spring学习之旅(六)--SpringMVC集成

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

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

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

随机推荐

  1. 一次修改闭源 Entity Provider 程序集以兼容新 EntityFramework 的过程

    读完本文你会知道,如何在没有源码的情况下,直接修改一个 DLL 以去除 DLL 上的强命名限制,并在该程序集上直接添加你的“友元程序集(一种特殊的 Attribute,将它应用在程序集上,使得程序集内 ...

  2. Ubuntu 14.04中Elasticsearch集群配置

    Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...

  3. 关于全局ID,雪花(snowflake)算法的说明

    上次简单的说一下:http://www.cnblogs.com/dunitian/p/6041745.html#uid C#版本的国外朋友已经封装了,大家可以去看看:https://github.co ...

  4. WPF做12306验证码点击效果

    一.效果 和12306是一样的,运行一张图上点击多个位置,横线以上和左边框还有有边框位置不允许点击,点击按钮输出坐标集合,也就是12306登陆的时候,需要向后台传递的参数. 二.实现思路 1.获取验证 ...

  5. 深究标准IO的缓存

    前言 在最近看了APUE的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,APUE中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?今天早上爬起来赶紧找了 ...

  6. [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?

    你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...

  7. 用神奇的currentColor制作简洁的颜色动画效果

    先上一个兼容性总结图:老版本ie可以直接用复杂方法了,套用某表情包的话:  2016年了,做前端你还考虑兼容IE6?你这简直是自暴自弃! 好了,知道了兼容性,我们可以放心的使用了. 在CSS3中扩展了 ...

  8. Web安全相关(五):SQL注入(SQL Injection)

    简介 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据 ...

  9. VB.NET设置控件和窗体的显示级别

    前言:在用VB.NET开发射频检测系统ADS时,当激活已存在的目标MDI子窗体时,被其他子窗体遮住了,导致目标MDI子窗体不能显示. 这个问题怎么解决呢?网上看到一篇帖子VB.NET设置控件和窗体的显 ...

  10. Android 中的mvvm

    我们来了解一下MVVM模式与Databinding ,MVVM是一种模式,Databinding 是一种框架.DataBinding是一个实现数据和UI绑定的框架.而ViewModel和View可以通 ...