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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/3 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 apache-cxf 使用_使用Apache CXF进行Web服务学习 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

apache-cxf 使用

在我的最后幾個(gè)項(xiàng)目中,我使用了Web服務(wù),在某些地方創(chuàng)建它們并在其他地方使用它們。 我認(rèn)為標(biāo)準(zhǔn)任務(wù)(例如創(chuàng)建客戶端,創(chuàng)建Web服務(wù)等)非常簡(jiǎn)單,如果遇到問題,有足夠的資源。 但是對(duì)于Web服務(wù)而言,這是一項(xiàng)瑣碎的任務(wù),可能會(huì)花費(fèi)大量時(shí)間,并且當(dāng)您無法正確處理這些簡(jiǎn)單問題時(shí),您會(huì)感到非常沮喪。

記錄中

在其中一個(gè)項(xiàng)目中,我們使用Apache CXF創(chuàng)建了Web服務(wù),并且一切正常。 只有一個(gè)問題Apache CXF使用java.util logger進(jìn)行日志記錄并用于打印各種日志。 我們的應(yīng)用程序使用Log4J,因此使用Log4J進(jìn)行Cxf和控制日志記錄非常簡(jiǎn)單。

正如Apache CXF站點(diǎn)上提到的,配置記錄器以使用Log4J是一項(xiàng)繁重的任務(wù),這是頁(yè)面上所說的:

將文件META-INF / cxf / org.apache.cxf.Logger添加到類路徑,并確保它包含以下內(nèi)容: org.apache.cxf.common.logging.Log4jLogger

很簡(jiǎn)單,您需要將文件添加到META-INF目錄,即可完成。 我們有一個(gè)生成戰(zhàn)爭(zhēng)的Maven項(xiàng)目,因此我在為戰(zhàn)爭(zhēng)而生成的META-INF文件夾中創(chuàng)建了文件,即src / main / webapp / META-INF。

現(xiàn)在,該文件存在,但是日志記錄仍然不受控制,CXF仍在使用Java logger。 我花了更多時(shí)間來弄清楚我做錯(cuò)了什么。 需要更多的努力才能意識(shí)到我已經(jīng)錯(cuò)過了“在類路徑中”的重要指導(dǎo)。 除WEB-INF之外生成的META-INF文件夾不在類路徑中,戰(zhàn)爭(zhēng)的classes文件夾中需要META-INF文件夾。

回顧了這個(gè)問題之后,我錯(cuò)過了classpath部分是很愚蠢的,但是我也不明白為什么CXF的家伙為什么選擇META-INF文件夾作為他們的配置文件。 META-INF在Java平臺(tái)上可用于服務(wù)和類加載器。 當(dāng)框架開始使用它進(jìn)行配置時(shí),它變得非常模棱兩可,然后有多個(gè)文件夾可以玩,這會(huì)使事情變得很不清楚。

肥皂處理機(jī)

在另一個(gè)地方,我們有一個(gè)要求,我們需要攔截傳入/傳出的肥皂請(qǐng)求,然后對(duì)其進(jìn)行處理。 Apache CXF提供了可用于完成此任務(wù)的攔截器 。 您可以有一些入站和出站,它們將按照要求進(jìn)行操作。 但是我們使用的是Java附帶的jaxws實(shí)現(xiàn)。 我們不打算將現(xiàn)有客戶轉(zhuǎn)移到CXF,因?yàn)槲覀冇泻芏嗫蛻?#xff0c;所以我們花了很多時(shí)間才弄清楚如何使用jaxws完成此工作。

基本上,根據(jù)JAX-WS規(guī)范,您可以具有一些可以與客戶端一起配置的SoapHandler 。 每當(dāng)進(jìn)行SOAP消息交換時(shí),都將調(diào)用該處理程序。 在處理程序中,您可以確定這是入站消息還是出站消息,然后執(zhí)行您的邏輯。 這些是配置處理程序所需的步驟:

創(chuàng)建一個(gè)擴(kuò)展SoapHandler接口的類并實(shí)現(xiàn)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過濾器。 他們是一個(gè)鏈條,被一個(gè)一個(gè)地稱呼。 因此,我們需要?jiǎng)?chuàng)建一個(gè)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>

配置文件也必須位于類路徑中,因?yàn)樗鼘?dǎo)入我們創(chuàng)建的Web服務(wù)客戶端中。 完成此操作后,我們需要在Web服務(wù)客戶端上啟用此處理程序鏈。

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

處理程序概念來自jaxws規(guī)范,可在其所有實(shí)現(xiàn)(例如Metro,CXF等)上使用。

參考:在“到目前為止的道路……”中 ,我們的JCG合作伙伴 Rahul Sharma所 提供的Web服務(wù)知識(shí) 。 博客 。

相關(guān)文章 :
  • Apache CXF負(fù)載平衡和故障轉(zhuǎn)移
  • Ruby,Python和Java中的Web服務(wù)
  • 具有Spring和Maven教程的JAX–WS
  • Spring 3 RESTful Web服務(wù)
  • Java教程和Android教程列表

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

apache-cxf 使用

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。