java cxf 双向通讯_CXF 在spring boot 2 发布多个服务

0. 问题来源

之前配置cxf服务端都是在spring 3以下,后来使用spring mvc 还都是基于xml的配置文件模式,在springboot模式下,实现起来更为简单了。此次记录下spring boot 2下的实现方式。

1. 准备工作

项目中,直接拉入spring boot cxf相关依赖

org.apache.cxf

cxf-spring-boot-starter-jaxws

3.2.4

系统环境中安装解压版的cxf代码(用于服务端生成代码)

我这里使用的版本是 apache-cxf-3.2.7,不再赘述,解压,配置环境变量

2. 具体细节

生成客户端代码,然后一股脑怼到项目里

wsdl2java -encoding utf-8 -d 你的目录 -client

创建CxfConfig.java 在项目中

package com.account.ibm.sync.config;

import org.apache.cxf.bus.spring.SpringBus;

import org.apache.cxf.jaxws.EndpointImpl;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.annotation.Qualifier;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import javax.xml.ws.Endpoint;

import com.cmcc.mss.sb_eas_eas_importclaimchannelserviceinfosrv.SBEASEASImportClaimChannelServiceInfoSrv;

import com.cmcc.soa.osb_bp_soa_hq_importtransmissinotifysrv.OSBBPSOAHQImportTransmissiNotifySrv;

/**

* @description cxf配置 用于发布服务所用的类

* @author fg

* @date 2019年1月29日

*/

@Configuration

public class CxfConfig {

@Autowired

private SpringBus bus;

@Bean

@Qualifier("oSBBPSOAHQImportTransmissiNotifySrv")

public Endpoint importTransmissiNotifySrv(OSBBPSOAHQImportTransmissiNotifySrv oSBBPSOAHQImportTransmissiNotifySrv) {

EndpointImpl endpoint = new EndpointImpl(bus, oSBBPSOAHQImportTransmissiNotifySrv);

endpoint.publish("/OSB_BP_SOA_HQ_ImportTransmissiNotifySrv");

return endpoint;

}

@Bean

@Qualifier("sBEASEASImportClaimChannelServiceInfoSrv")

public Endpoint importClaimChannelServiceInfoSrv(SBEASEASImportClaimChannelServiceInfoSrv sBEASEASImportClaimChannelServiceInfoSrv) {

EndpointImpl endpoint = new EndpointImpl(bus, sBEASEASImportClaimChannelServiceInfoSrv);

endpoint.publish("/SB_EAS_EAS_ImportClaimChannelServiceInfoSrv");

return endpoint;

}

@Bean(name = Bus.DEFAULT_BUS_ID)

public SpringBus springBus() {

SpringBus springBus = new SpringBus();

LoggingFeature logFeature = new LoggingFeature();

logFeature.setPrettyLogging(true);

logFeature.initialize(springBus);

springBus.getFeatures().add(logFeature);

return springBus;

}

}

我这里是两个服务,因此是声明两个@Bean Endpoint,而不是网上一些说法配置两个CxfConfig

2. 测试

访问如下地址,可以看到两个接口

http://localhost/你的项目名/services/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序 坚屏_如何构建坚如磐石的应用程序

小程序 坚屏不同的应用程序设计选项概述 (An overview of different app design options) When we design software, we constantly think about error cases. Errors have a huge impact on the way we design and architecture a solution. So much so, in fact, that there …

C# 分层

三层架构分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)再加上实体类库(Model) 转载请注明出自朱朱家园http://blog.csdn.net/zhgl7688 1、实体类库(Mod…

leetcode1177. 构建回文串检测(前缀和)

给你一个字符串 s,请你对 s 的子串进行检测。 每次检测,待检子串都可以表示为 queries[i] [left, right, k]。我们可以 重新排列 子串 s[left], …, s[right],并从中选择 最多 k 项替换成任何小写英文字母。 如果在上述检测过程中&#xf…

java界面化二叉排序树_层次序创建二叉树(图形界面和控制台输入实现)

1 2018.11.72 XT34 /**5 * 功能:构造二叉树6 * 说明:7 * 1.主函数输入模式有两种,BT参数 true 图形界面,false 控制台输入8 * 2.构造树是按层次遍历结果输入的 如:ABCDE*F**GH9 */1011 import javax.swing.*;12 import…

web开发环境_Web开发人员的开发环境

web开发环境With all the tools and programs available, it can be challenging to figure out the best way to set up your development environment on your computer.使用所有可用的工具和程序,寻找在计算机上设置开发环境的最佳方法可能是一项挑战。 In this…

使用.net Stopwatch class 来分析你的代码

当我们在调试,优化我们的代码的时候,想知道某段代码的真正的执行时间,或者我们怀疑某段代码,或是某几段代码执行比较慢, 需要得到具体的某段代码的具体执行时间的时候。有一个很好用的类Stopwatch。 Stopwatch 类在 Sy…

Docker 部署 postgresql 与 pgadmin4

Docker快速部署PostgreSQL服务 快速开始 请新建一个目录postgresql,进入目录postgresql,将以下文件保存为docker-compose.yml,然后执行docker-compose up version: 3 services:mydb:image: postgres:11volumes:- db-data:/var/lib/postgresql…

leetcode151. 翻转字符串里的单词

给定一个字符串&#xff0c;逐个翻转字符串中的每个单词。 示例 1&#xff1a; 输入: “the sky is blue” 输出: “blue is sky the” 代码 class Solution {public String reverseWords(String s) {int ns.length(),i0;ArrayList<String> arrayListnew ArrayList<…

java衍生作用_java-如何从AffineTransform衍生的形状对象中“...

您可以使用AffineTransform.transform(Point2D, Point2D)变换多边形上的单个点.如果您不使用旋转变换来移动船,而是将船的位置保持在一个(x,y)位置,那么事情就简单得多.您可以在move()中移动飞船的位置,而不是尝试平移多边形.然后,当您想给船上油漆时,例如做&#xff1a;// Opt…

初学者设计数据库_面向初学者的完整数据库设计课程

初学者设计数据库This database design course will give you a deeper grasp of database design. Caleb Curry teaches the equivalent of an entire college course during this eight hour video.本数据库设计课程将使您更深入地了解数据库设计。 在这8个小时的视频中&…

Qt QTcpSocket使用总结

socket的连接是异步的&#xff0c;所以必须等连接建立完成才能使用&#xff0c;所以分别加入waitForConnected()和waitForBytesWritten()后调试通过1&#xff09;只有使用waitForConnected()后,QTcpSocket才真正尝试连接服务器&#xff0c;并返回是否连接的结果2&#xff09;避…

[bzoj1303][CQOI2009]中位数图

来自FallDream的博客&#xff0c;未经允许&#xff0c;请勿转载&#xff0c;谢谢。 给定一个n个数排列&#xff0c;求有多少段长度为奇数的区间&#xff0c;中位数是b. n<100000 时间限制0.1s 我一开始没看到排列&#xff0c;想着怎么还能O(n)做的啊&#xff1f;&#xff1f…

falsk 请求没有返回值报错

线上报警 5xx 错误&#xff0c;查看日志发现报这个错&#xff0c; TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement. 这个方法没有有效的返回结果 页面报这个错误 Internal Server Err…

java的iterator接口_java Iterator接口和LIstIterator接口分析_java_脚本之家

java Iterator接口和LIstIterator接口分析目录1.Iterator接口2.ListIterator3.Iterator和ListIterator的区别正文在继续看ArrayList源码之前&#xff0c;先了解Iterator接口和ListIterator接口&#xff0c;下篇文章详细讲解ArrayList是如何实现它们的。我们知道&#xff0c;接…

leetcode468. 验证IP地址

编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。 IPv4 地址由十进制数和点来表示&#xff0c;每个地址包含4个十进制数&#xff0c;其范围为 0 - 255&#xff0c; 用(".")分割。比如&#xff0c;172.16.254.1&#xff1b; 同时&#xff0c;IPv4 地…

播客#45:迪伦·以色列

On todays episode, I interview Dylan Israel. Dylan is a software engineer, a YouTuber, and the creator of several programming courses.在今天的一集中&#xff0c;我采访了迪伦以色列。 迪伦(Dylan)是一位软件工程师&#xff0c;一名YouTuber&#xff0c;并且是几门编…

PHPstorm快捷键

当前文件搜索类&#xff1a;ctrln 全文检索文件&#xff1a;ctrlshiftn 收起侧边栏&#xff1a;alt1&#xff08;自定义&#xff09; 个人学习记录&#xff0c;持续更新中。。。 转载于:https://www.cnblogs.com/zaijiang/p/7806260.html

JS基础_强制类型转换-Number

https://www.cnblogs.com/ZHOUVIP/p/7225267.html转载于:https://www.cnblogs.com/robinunix/p/11011188.html

JavaScript变量和作用域

JavaScript有两种变量&#xff0c;全局变量和局部变量 如果在任何函数定义之外声明了一个变量&#xff0c;则该变量是全局变量&#xff0c;且该变量的值在整个持续范围内都可以访问和修改 如果在函数定义内声明来了一个变量&#xff0c;则该变量为局部变量。每次执行该函数时都…

python 微信bot_使用Python创建Twitter Bot

python 微信botHave you ever wantd to create a Twitter bot? In this tutorial John G. Fisher shows how to create a bot with Python that tweets images or status updates at a set interval.您是否曾经想创建一个Twitter机器人&#xff1f; 在本教程中&#xff0c;约翰…