當前位置:首頁 » 存儲配置 » cxf如何配置線程數

cxf如何配置線程數

發布時間: 2022-08-11 17:26:53

1. IDEA如何配置CXF,maven項目,第一次搞wsdl這東西,完全不會,求教

先了解一下webservice原理,還有相關的專業術語,然後你就會了。你上來直接問咋配置,就算跟你說了,你也不住,下次還是不會。

2. cxf怎樣提高webservice性能,及訪問速度調優

1、 啟用FastInfoset(快速信息集)

webservice的性能實在是不敢恭維。曾經因為webservice吞吐量上不
去,對webservice進行了一些性能方面的優化,採用了FastInfoset,效果很明顯,極端條件下的大數據量傳輸,性能提高60%,他可以減
少傳輸成本,序列化成本和xml解析成本。

Cxf提供了FastInfoset協商機制,實現類見org.apache.cxf.feature.FastInfosetFeature,在bus中啟用如下配置:

<cxf:features><cxf:fastinfoset force="false"/></cxf:features>

Force=false表示服務端和客戶端第一次通信時會協商(通過檢查標準的HTTP頭的Accept欄位,值為MIME類型的application/fastinfoset)是否啟用FastInfoset支持,如果客戶端不支持,則不啟用快速信息集。

需要在pom中添加依賴:

<dependency>

<groupId>com.sun.xml.fastinfoset</groupId>

<artifactId>FastInfoset</artifactId>

<version>1.2.9</version>

<type>jar</type>

<scope>compile</scope>

</dependency>

FastInfoset參考:http://java.sun.com/developer/technicalArticles/xml/fastinfoset/

client和service端都要配置

2、 啟用gzip壓縮支持

客戶端和伺服器端是否使用Gzip壓縮,也是基於http協議協商的(檢查請求
header 中是否有Accept-encoding:gzip)。但是這里需要仔細權衡下。對於小數據量,啟用gzip壓縮支持是吃力不討好的行為,
數據量很小的時候,gzip壓縮結果不明顯,還浪費cpu。我們需要權衡數據大小,按照經驗設置threshold為10*1024byte。

在bus中啟用如下配置:

<bean class="org.apache.cxf.transport.common.gzip.GZIPFeature ">

<property name="threshold"><value>10240</value></property>

</bean>

官方文檔指定是是配置org.apache.cxf.transport.http.gzip.GZIPFeature,但是這個類會找不到,可能是官方文檔年久失修,造成一些混亂。官方文檔中也沒提示指定threshold,請參考GZIPFeature源代碼。

參考http://cxf.apache.org/docs/featureslist.html

3、 使用slf4j代替cxf默認日誌組件

CXF 默認使用java.util.logging作為日誌列印組件,其性能我就不過多評價,也不太便於我們做統一日誌管理。目前系統使用的slf4j作為日誌列印組件,替換如下:

在classpath中加入META-INF/cxf/org.apache.cxf.Logger文件,文件內容為

org.apache.cxf.common.logging.Slf4jLogger

4、 測試中啟用日誌

bus中加入<cxf:logging/>,請在測試環境中啟用有助於debug

補充:

1、如何自定義返回碼:

請求在service中處理遇到異
常後,會調用請求鏈中所有攔截器的handleFault方法,參考PhaseInterceptorChain#unwind,然後判斷請求是否單向請
求,如果不是,則構建異常請求鏈,並構建異常message對象,調用異常請求鏈中的handleMessage 方法(參
考:)

JAXWSMethodInvoker
轉發soap請求到指定對象的方法,如果在請求處理失敗,調用updateHeader方法,把請求時的soap
header放入返回header中。但是不同通過繼承JAXWSMethodInvoker來實現清除異常時soap
header也返回給客戶端的問題,因為JAXWSMethodInvoker沒有採用注入的機制
(JaxWsServerFactoryBean#createInvoker)也沒有chain.異常時,會由這些攔截器處理返回請求:

setup []

prepare-send [MessageSenderInterceptor, Soap11FaultOutInterceptor]

pre-stream [LoggingOutInterceptor, StaxOutInterceptor]

pre-protocol [WebFaultOutInterceptor]

write [SoapOutInterceptor]

攔截器初始化類

我們可以在異常鏈中加入清理soap header的攔截器,清理掉在系統異常時soapheader中有信息的問題。

返回錯誤狀態碼,在執行Soap11FaultOutInterceptor攔截器中被寫死。

message.put(org.apache.cxf.message.Message.RESPONSE_CODE, new Integer(500));

為了使返回數據中有錯誤碼,需要在Soap11FaultOutInterceptor後面加入攔截器

2、在項目測試時遇到一個報錯
invalid LOC header (bad
signature),這個問題是因為jar包損壞照成的,雖然構建路徑中有這個jar,但是還是會出現loadClass失敗,清理maven 本地倉
庫目錄的jar,修改pom(比如加上一空行)讓m2e重新載入。
3、Cxf中有一個很不錯的特性,支持javascript訪問soap
webservice,客戶端訪問http://localhost:8080/cxf/HelloWorld?js類似的請求,會生成
javascript 客戶端,js編程時就可以使用此客戶端提供的對象,啟用此功能需要在引入

<import resource="classpath:META-INF/cxf/cxf-extension-javascript-client.xml" />並且在依賴中加入:

<dependency>

<groupId>org.apache.cxf</groupId>

<artifactId>cxf-rt-javascript</artifactId>

<version>2.4.1</version>

<type>jar</type>

<scope>compile</scope>

</dependency>

3. 官網下載Cxf3.1.7後怎麼配置環境變數

步驟如下: 1、從Oracle官網下載JDK安裝包,如:jdk-7u79-windows-x86版本。 2、安裝包下載完成後,雙擊安裝包進行安裝,安裝路徑可以使用默認路徑,這里改為D:\Program Files\Java。 3、安裝完成後,還需要進行環境變數的配置,在系統環境變數...

4. WebService CXF 怎麼設置 timeout

由於用CXF構建的webservice使用的是spring配置方式很簡單
但是由於客戶端使用jaxws:client方式請求的,這個請求方式不能直接配置timeout的
用spring配置jaxws客戶端請求的的配置:

Xml代碼
<jaxws:client id="" serviceClass="" address="" />

如果使用這種方式配置直接有timeout屬性

Xml代碼
<http-conf:conit>
<http-conf:client ConnectionTimeout="30000"/>
</http-conf:conit>

那我們繼續使用jaxws:client配置方式如何設置timeout呢?
只需在我們調用web service的代碼之處加上:

Java代碼
long timeout = 10000L;
client = ClientProxy.getClient(對應spring配置文件里你配置的clientid);
if (client != null) {
HTTPConit conit = (HTTPConit) client.getConit();
HTTPClientPolicy policy = new HTTPClientPolicy();
policy.setConnectionTimeout(timeout);
policy.setReceiveTimeout(timeout);
conit.setClient(policy);
}

5. cxf 使用wsdl2java命令的詳細環境變數的配置!

用ant 或者 maven 在eclipse里弄,簡單的多。

6. 求助ssh框架cxf的配置問題

可能是getHibernateTemplate沒有注進sessionfactory吧 注釋加的有問題吧,其中有些是必填項的 Caused by: java.lang.NullPointerException at e.tyut.caiqm..ZjmmbDaoImpl.getZjmmb(ZjmmbDaoImpl.java:17) 明顯代碼有問題 或許id為null

7. cxf怎麼發布多個web服務

這個不是cxf的問題,你看看你的容器是用什麼,TOMCAT還是什麼的,看他的配置線程還有就是你用httpclient測試下多線程訪問其他頁面,如登錄之類的,看看是不是也有限制,如果沒有,估計就是你代碼中加了限制了

8. java 用cxf發布webservice的配置文件

參考 1.「爸,如果你不是要去參加一個夏威夷草群聚會的話,請把現在你脖子上那條春花爛漫的領帶換掉,好么?」

9. java cxf是什麼,能幹什麼,用的時候需要注意什麼,請賜教

CXF 包含了大量的功能特性,但是主要集中在以下幾個方面:支持 Web Services 標准:CXF 支持多種 Web Services 標准,包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging 和 WS-Security。Frontends:CXF 支持多種「Frontend」編程模型,CXF 實現了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一個「simple frontend」允許客戶端和 EndPoint 的創建,而不需要 Annotation 註解。CXF 既支持 WSDL 優先開發,也支持從 Java 的代碼優先開發模式。容易使用: CXF 設計得更加直觀與容易使用。有大量簡單的 API 用來快速地構建代碼優先的 Services,各種 Maven 的插件也使集成更加容易,支持 JAX-WS API ,支持 Spring 2.0 更加簡化的 XML 配置方式,等等。支持二進制和遺留協議:CXF 的設計是一種可插撥的架構,既可以支持 XML ,也可以支持非 XML 的類型綁定,比如:JSON 和 CORBA。

熱點內容
我的世界網易版伺服器空島製作 發布:2025-01-10 05:11:35 瀏覽:845
微信怎麼設置微信密碼忘了怎麼辦啊 發布:2025-01-10 05:09:17 瀏覽:571
凈網密碼是什麼 發布:2025-01-10 05:04:31 瀏覽:821
C語言醉酒 發布:2025-01-10 05:02:07 瀏覽:759
淘寶上傳寶貝品牌怎麼填寫 發布:2025-01-10 04:27:26 瀏覽:552
在計算機的存儲單元中存儲的 發布:2025-01-10 04:26:37 瀏覽:733
壓縮表qb 發布:2025-01-10 04:24:55 瀏覽:1000
linuxhttpd訪問 發布:2025-01-10 04:17:57 瀏覽:405
java實時監控 發布:2025-01-10 04:11:46 瀏覽:363
c語言程序試題 發布:2025-01-10 04:05:17 瀏覽:793