apache-cxf 使用_使用Apache CXF进行Web服务学习

apache-cxf 使用

在我的最后几个项目中,我使用了Web服务,在某些地方创建它们并在其他地方使用它们。 我认为标准任务(例如创建客户端,创建Web服务等)非常简单,如果遇到问题,有足够的资源。 但是对于Web服务而言,这是一项琐碎的任务,可能会花费大量时间,并且当您无法正确处理这些简单问题时,您会感到非常沮丧。

记录中

在其中一个项目中,我们使用Apache CXF创建了Web服务,并且一切正常。 只有一个问题Apache CXF使用java.util logger进行日志记录并用于打印各种日志。 我们的应用程序使用Log4J,因此使用Log4J进行Cxf和控制日志记录非常简单。

正如Apache CXF站点上提到的,配置记录器以使用Log4J是一项繁重的任务,这是页面上所说的:

将文件META-INF / cxf / org.apache.cxf.Logger添加到类路径,并确保它包含以下内容: org.apache.cxf.common.logging.Log4jLogger

很简单,您需要将文件添加到META-INF目录,即可完成。 我们有一个生成战争的Maven项目,因此我在为战争而生成的META-INF文件夹中创建了文件,即src / main / webapp / META-INF。

现在,该文件存在,但是日志记录仍然不受控制,CXF仍在使用Java logger。 我花了更多时间来弄清楚我做错了什么。 需要更多的努力才能意识到我已经错过了“在类路径中”的重要指导。 除WEB-INF之外生成的META-INF文件夹不在类路径中,战争的classes文件夹中需要META-INF文件夹。

回顾了这个问题之后,我错过了classpath部分是很愚蠢的,但是我也不明白为什么CXF的家伙为什么选择META-INF文件夹作为他们的配置文件。 META-INF在Java平台上可用于服务和类加载器。 当框架开始使用它进行配置时,它变得非常模棱两可,然后有多个文件夹可以玩,这会使事情变得很不清楚。

肥皂处理机

在另一个地方,我们有一个要求,我们需要拦截传入/传出的肥皂请求,然后对其进行处理。 Apache CXF提供了可用于完成此任务的拦截器 。 您可以有一些入站和出站,它们将按照要求进行操作。 但是我们使用的是Java附带的jaxws实现。 我们不打算将现有客户转移到CXF,因为我们有很多客户,所以我们花了很多时间才弄清楚如何使用jaxws完成此工作。

基本上,根据JAX-WS规范,您可以具有一些可以与客户端一起配置的SoapHandler 。 每当进行SOAP消息交换时,都将调用该处理程序。 在处理程序中,您可以确定这是入站消息还是出站消息,然后执行您的逻辑。 这些是配置处理程序所需的步骤:

创建一个扩展SoapHandler接口的类并实现handle消息方法:

class CustomHandler implements SOAPHandler<SOAPMessageContext>{// TODO: implement other methodspublic boolean handleMessage(SOAPMessageContext context) {// Check for message statusBoolean outboundProperty = (Boolean)context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);if (null == outboundProperty || !outboundProperty) {log.debug("not an outbound message");return true;}}
}

处理程序就像servlet过滤器。 他们是一个链条,被一个一个地称呼。 因此,我们需要创建一个XML文件,可以在其中配置所需的所有处理程序。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<javaee:handler-chainsxmlns:javaee="http://java.sun.com/xml/ns/javaee"xmlns:xsd="http://www.w3.org/2001/XMLSchema"><javaee:handler-chain><javaee:handler><javaee:handler-class>pkg.CustomHandler</javaee:handler-class></javaee:handler></javaee:handler-chain>
</javaee:handler-chains>

配置文件也必须位于类路径中,因为它将导入我们创建的Web服务客户端中。 完成此操作后,我们需要在Web服务客户端上启用此处理程序链。

@WebServiceClient(.....)
@HandlerChain(file="handlerFile.xml")
public class SampleServiceImpl extends Service{
}

处理程序概念来自jaxws规范,可在其所有实现(例如Metro,CXF等)上使用。

参考:在“到目前为止的道路……”中 ,我们的JCG合作伙伴 Rahul Sharma所 提供的Web服务知识 。 博客 。

相关文章 :
  • Apache CXF负载平衡和故障转移
  • Ruby,Python和Java中的Web服务
  • 具有Spring和Maven教程的JAX–WS
  • Spring 3 RESTful Web服务
  • Java教程和Android教程列表

翻译自: https://www.javacodegeeks.com/2011/11/web-service-learnings-with-apache-cxf.html

apache-cxf 使用

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

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

相关文章

123 Best time to buy and sell stock iii

题解&#xff1a; 根据题目要求&#xff0c;最多进行两次买卖股票&#xff0c;而且手中不能有2只股票&#xff0c;就是不能连续两次买入操作。 所以&#xff0c;两次交易必须是分布在2各区间内&#xff0c;也就是动作为&#xff1a;买入卖出&#xff0c;买入卖出。 进而&#…

解决 invalid input detected at ‘^’ marker的问题

粉丝求助&#xff1a; 解决办法&#xff1a; Switch开不了机&#xff08;机器bai黑屏&#xff0c;如果找很黑的房间能看到屏du幕内部有zhi点透亮光&#xff09;&#xff1b; 解决方法&#xff1a;这dao是假死机&#xff0c;按住电源键12秒强制关机&#xff0c;然后再按电源键能…

PyCharm社区版设置简体中文界面

点击“File”&#xff0c;出现的菜单中点击“Settings”, 在弹出的界面中&#xff0c;选“Plugins”&#xff0c; 然后在右边输入框中输入“chinese”, 在搜索结果中&#xff0c;选中Chinese(Simplified) Language Pack&#xff0c;点击右边的“install”即可。

JMS和AWS SQS的更多高级内容

如您所知&#xff0c; AWS中的SQS SQS代表“简单队列服务”。 最近&#xff0c;在使用它的同时&#xff0c;我发现了将其称为“简单”的原因之一。 在之前的两篇文章&#xff08; 此处和此处 &#xff09;中&#xff0c;我展示了结合Spring Framework将SQS用作JMS队列提供程序 …

w10家庭版安装java不_小编为你分析win10系统安装不了java的设置办法

许多win10系统用户在工作中经常会遇到win10系统安装不了java的情况&#xff0c;想必大家都遇到过win10系统安装不了java的情况吧&#xff0c;那么应该怎么处理win10系统安装不了java呢&#xff1f;我们依照1、查看自己的电脑是32位的还是64位的(x86代表32位的)。java安装要求比…

用C语言实现津巴布韦这道算法题?

粉丝求助: 题目内容如下: 5、津巴布韦 由于计划经济失败,津巴布韦称为世界上通胀率最高的国家。这里的物价即使在一天中也会持续上涨,所以必须实时更新物品价格。例如:1个鸡蛋的价格为35亿津巴布韦元,所以超市做了每位数字的活动标价牌。 钟旭在穆加贝超市打工,有一天遇…

盘点几种数据库的分页SQL的写法(转)

Data序列——盘点几种数据库的分页SQL的写法http://www.cnblogs.com/fireasy/archive/2013/04/10/3013088.html 转载于:https://www.cnblogs.com/wangjunwei/p/4522834.html

dnslog盲注

dnslog盲注dnslog注入原理DNSlog工具什么情况下使用dnslog注入&#xff1f;Mysql DNSlog原理图DNSlog盲注利用条件DNSlog盲注操作方式实战演练查询当前数据库名&#xff1a;查询当前数据库的第一个表名&#xff1a;查询第users表一个列名&#xff1a;查询users表的username列的…

Python在cmd中配置虚拟环境ERROR: Command errored out with exit status 1:

粉丝求助: 解决办法: 具体步骤: 1.查看Python版本 2.Pythonlibs 中找到对应版本的whl文件,cp37代表3.7版本,win32代表Windows系统32位机,根据自己的电脑位数选择。

java sqlserver ssl_拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)...

工作准备•一台SQLSERVER 2005/SQLSERVER 2008服务•SQLSERVER jdbc驱动程序•Java开发环境eclipse jdk1.8•java反编译工具JD-Core反编译JDBC分析SQLSERVER客户端与服务器通信原理SQLServerConnection.class1、经过反编译分析SQLServerConnection.class文件我们可以看到登录时…

1-9其他数据库注入

文章目录 数据库注入access数据库判断access数据库常用函数查询语句构造联合查询布尔型盲注 mssql数据库mssql数据库判断环境---靶机-2k3_sp2常用函数查询语句构造联合查询报错注入布尔型盲注 数据库注入 access数据库 判断access数据库 根据url的后缀。ASP为后缀名…

tp框架 db::name_玩! 框架:为什么我会爱上它

tp框架 db::name前一段时间&#xff0c;我是房地美&#xff0c;房地美&#xff0c;Foreclosure.com和HUD等公司在房地产市场上进行一些大型部署的技术负责人。 我们运行的是您可能熟悉的传统企业Java堆栈-Spring &#xff0c; Hibernate &#xff0c;Solr等。花了几年时间&…

自动化专业向往硬件方面靠,有什么好的建议?

我的建议是: 有能力考研就先考研,考不上可以选择就业,学历还是很重要的,门槛。自动化可以找一些相关的知名企业,按照他们的招聘要求要求自己,往这个方法发展,垂直领域研究很深,你就是大佬和专家。 有个帖子讲的挺全的,虽然是文章:自动化人生 下面是理论内容,我直接…

java 内存数据库 sql_ssm+redis +Maven用于内存数据库 (No Sql)入门demo

最近一直是以自学的状态&#xff0c;想把自己学习到的知识分享给大家 &#xff0c;也是好久没有写博客了。废话不多说 &#xff0c;直接上代码。本次项目是 用maven 管理的.开发工具 eclipse在pom.xml文件中&#xff0c;中关于redis的配置&#xff1a;org.springframework.data…

Fitness - 05.23

倒计时222天 运动40分钟&#xff0c;共计8组&#xff0c;4.2公里。拉伸10分钟。 每组跑步3分钟&#xff08;6.5KM/h&#xff09;&#xff0c;走路2分钟&#xff08;5.5KM/h&#xff09;。 终于赶在姨妈前完成第3周的跑步训练了&#xff0c;可喜可贺~~ 下周预计要休息了orz... 祈…

Linux下编译安装以及配置PHP环境

安装准备 依次执行下面命令,不存在的就搜差不多的就行,下面安装的都是后面安装环境可能需要用上的依赖,不管37是不是21,复制粘贴就是了 Ubuntu安装: sudo apt-get update sudo apt-get install gcc autoconf openssl libssl-dev curl libcurl4-gnutls-de…

开发SPI时不要犯这个错误

您的大多数代码都是私有的&#xff0c;内部的&#xff0c;专有的&#xff0c;并且永远不会公开。 在这种情况下&#xff0c;您可以放轻松–您可以重构所有错误&#xff0c;包括那些可能导致API更改中断的错误。 但是&#xff0c;如果要维护公共API&#xff0c;则不是这种情况。…

有什么好一点的方法读jdk源码吗?

建议是: 1:找相关的书在看相关源码时应该对程序有整体了解,比如看虚拟机时至少要知道:垃圾回收算法,Java内存布局,class文件格式,加载连接的过程...很多人看源码一点头绪都没有,就是因为不了解对应的模块是干嘛的(比如Ja

给女朋友道歉的java代码_跟女朋友道歉的话,高情商的哄人句子

女朋友生气了&#xff0c;而且很严重。在这种情况下&#xff0c;不知道做什么挽回她。第一诚实的道歉可以缓和彼此紧张的气氛。重要的是&#xff0c;道歉完就需要说一些话语去哄她&#xff0c;至于怎么哄又是一个技术性的问题了&#xff0c;下面一起来看看跟女朋友道歉的话,高情…

使用Myeclipse完成Hibernate的逆向工程

Hibernate的开发流程一般有两种&#xff1a; 1、由Domain object > mapping > db 2、由db开始&#xff0c;用工具生成生成mapping 和Domain object。 在实际的开发过程中&#xff0c;涉及的表太多了&#xff0c;一个一个的写java实体类很费事费时的。Myeclipse提供了一个…