日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/3 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 使用

總結

以上是生活随笔為你收集整理的apache-cxf 使用_使用Apache CXF进行Web服务学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。