在 xfire中使用 GZip来 压缩 传输量
在XFire1.2以后支持SOAP消息的GZip壓縮傳輸,在合適的地方啟動GZip壓縮可以減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,加快速度。
文章目錄
- 1. jar下載地址
- 2. 服務(wù)端
- 3.客戶端
1. jar下載地址
https://sourceforge.net/projects/pjl-comp-filter/
或者直接點擊下載最新版本:
https://sourceforge.net/projects/pjl-comp-filter/files/latest/download
2. 服務(wù)端
服務(wù)端啟動GZip:在服務(wù)端啟動GZip只需將PJL Compressing Filter下的jar包(用到的)導(dǎo)入到web的/WEB-INF/lib目錄下。
并在web.xml文件中增加如下配置:
<filter><filter-name>CompressingFilter</filter-name><filter-class>com.planetj.servlet.filter.compression.CompressingFilter</filter-class><init-param><param-name>debug</param-name><param-value>false</param-value></init-param><init-param><param-name>statsEnabled</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>CompressingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>服務(wù)端加入GZip時web.xml中增加的配置
注:根據(jù)web.xml文法定義,這個定義必須位于servlet定義之前。
二、客戶端啟用GZip:客戶端啟動GZip只要將客戶端的GZip的屬性設(shè)為true卻可。代碼如下:
3.客戶端
早期:客戶端調(diào)用的修改(不建議使用)
String serviceURL = "http://192.168.0.225/ldaxfire/services/LDAService";String namespace = "http://test.yicha.cn/adreport";// 創(chuàng)建service對象Service serviceModel = new ObjectServiceFactory().create(ServiceInf.class, null,namespace,null);XFireProxyFactory serviceFactory = new XFireProxyFactory();// 獲取服務(wù)對象ServiceInf service = (ServiceInf) serviceFactory.create(serviceModel, serviceURL);// 獲取客戶端代理Client client = ((XFireProxy) Proxy.getInvocationHandler(service)).getClient();/*** 此屬性作用:開啟GZip壓縮傳輸* 客戶端配置屬性影響:當(dāng)服務(wù)端沒有啟用GZip,客戶端啟用請求GZip壓縮時,會產(chǎn)生SOAP解析錯誤* 服務(wù)端配置屬性影響:服務(wù)端這個配置不管配不配置(也就是說:如果服務(wù)端啟動了GZip壓縮功能,客戶端是否啟用GZip都沒有影響)*/// 啟動response壓縮client.setProperty(CommonsHttpMessageSender.GZIP_RESPONSE_ENABLED, Boolean.TRUE);// 啟動request壓縮client.setProperty(CommonsHttpMessageSender.GZIP_RESPONSE_ENABLED,Boolean.TRUE);// 同時啟動response和request壓縮client.setProperty(CommonsHttpMessageSender.GZIP_ENABLED,Boolean.TRUE);// 忽略超時client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0");// 調(diào)用服務(wù) //這里的nciicCompare是服務(wù)端接口 accreditFile是秘鑰 reqXML2請求報文String data = service.nciicCompare("","");注:在同時啟用時,不必再分別啟用response和request的GZip壓縮。
注意,當(dāng)服務(wù)端沒有啟用GZip,客戶端啟用請求GZip壓縮時,會產(chǎn)生SOAP解析錯誤,如果服務(wù)端啟動了GZip壓縮功能,客戶端是否啟用GZip都沒有影響。
推薦企業(yè)級xfire搭建
IDEA快速 實現(xiàn) SpringMVC 整合xfire 發(fā)布 WebService 服務(wù)
總結(jié)
以上是生活随笔為你收集整理的在 xfire中使用 GZip来 压缩 传输量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯位置服务地图选点这个怎么在小程序里面
- 下一篇: Nexus 3.31.1 maven 私