网站设计规范,安徽建筑大学城市建设学院网站,响应式网站 cms,网站建设需要哪些步骤apache-cxf 使用在我的最后几个项目中#xff0c;我使用了Web服务#xff0c;在某些地方创建它们并在其他地方使用它们。 我认为标准任务#xff08;例如创建客户端#xff0c;创建Web服务等#xff09;非常简单#xff0c;如果遇到问题#xff0c;有足够的资源。 但是对… 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 SOAPHandlerSOAPMessageContext{// 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 version1.0 encodingUTF-8 standaloneyes?
javaee:handler-chainsxmlns:javaeehttp://java.sun.com/xml/ns/javaeexmlns:xsdhttp://www.w3.org/2001/XMLSchemajavaee:handler-chainjavaee:handlerjavaee:handler-classpkg.CustomHandler/javaee:handler-class/javaee:handler/javaee:handler-chain
/javaee:handler-chains 配置文件也必须位于类路径中因为它将导入我们创建的Web服务客户端中。 完成此操作后我们需要在Web服务客户端上启用此处理程序链。 WebServiceClient(.....)
HandlerChain(filehandlerFile.xml)
public class SampleServiceImpl extends Service{
} 处理程序概念来自jaxws规范可在其所有实现例如MetroCXF等上使用。 参考在“到目前为止的道路……”中 我们的JCG合作伙伴 Rahul Sharma所 提供的Web服务知识 。 博客 。 相关文章 Apache CXF负载平衡和故障转移 RubyPython和Java中的Web服务 具有Spring和Maven教程的JAX–WS Spring 3 RESTful Web服务 Java教程和Android教程列表 翻译自: https://www.javacodegeeks.com/2011/11/web-service-learnings-with-apache-cxf.htmlapache-cxf 使用