中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      如何壓縮Web Service數(shù)據(jù)

      時(shí)間:2024-07-15 09:39:16 J2EE培訓(xùn) 我要投稿
      • 相關(guān)推薦

      如何壓縮Web Service數(shù)據(jù)

        在現(xiàn)實(shí)應(yīng)用中有些時(shí)候會(huì)有比較大的數(shù)據(jù)對(duì)象需要傳輸,或者在一個(gè)比較慢的網(wǎng)絡(luò)環(huán)境下發(fā)布調(diào)用web service,此時(shí)可以通過(guò)壓縮數(shù)據(jù)流的方式來(lái)減小數(shù)據(jù)包的大小,從而提高web service的性能。下面yjbys小編為大家準(zhǔn)備了關(guān)于如何壓縮Web Service數(shù)據(jù)的文章,歡迎閱讀。

        1. 首先模擬一個(gè)可以存放大數(shù)據(jù)的pojo對(duì)象,這個(gè)對(duì)象可以通過(guò)構(gòu)造參數(shù)給定的size來(lái)模擬一個(gè)size大小的字符串。

        package com.googlecode.garbagecan.cxfstudy.compress;

        public class BigData {

        private String name;

        private String data;

        public BigData() {

        }

        public BigData(String name, int size) {

        this.name = name;

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < size; i++) {

        sb.append("0");

        }

        this.data = sb.toString();

        }

        public String getName() {

        return name;

        }

        public void setName(String name) {

        this.name = name;

        }

        public String getData() {

        return data;

        }

        public void setData(String data) {

        this.data = data;

        }

        }

        2. Web Service接口類,和普通的接口定義沒(méi)有什么區(qū)別。

        package com.googlecode.garbagecan.cxfstudy.compress;

        import javax.jws.WebMethod;

        import javax.jws.WebParam;

        import javax.jws.WebResult;

        import javax.jws.WebService;

        @WebService

        public interface BigDataService {

        @WebMethod

        @WebResult BigData getBigData(@WebParam String name, @WebParam int size);

        }

        3. Web Service實(shí)現(xiàn)類

        package com.googlecode.garbagecan.cxfstudy.compress;

        public class BigDataServiceImpl implements BigDataService {

        public BigData getBigData(String name, int size) {

        BigData bigData = new BigData(name, size);

        return bigData;

        }

        }

        4. 測(cè)試類,這片文章使用了JUnit測(cè)試類來(lái)做測(cè)試。setUpBeforeClass方法用來(lái)啟動(dòng)Service, testGetBigData方法用來(lái)測(cè)試web service。

        注意setUpBeforeClass方法中的

        factoryBean.getInInterceptors().add(new GZIPInInterceptor());

        factoryBean.getOutInterceptors().add(new GZIPOutInterceptor());

        和testGetBigData方法中的

        endpoint.getInInterceptors().add(new GZIPInInterceptor());

        endpoint.getOutInterceptors().add(new GZIPOutInterceptor());

        上面兩段代碼就是告訴CXF使用壓縮Interceptor來(lái)壓縮和解壓縮數(shù)據(jù)包。

        package com.googlecode.garbagecan.cxfstudy.compress;

        import org.apache.cxf.endpoint.Client;

        import org.apache.cxf.endpoint.Endpoint;

        import org.apache.cxf.frontend.ClientProxy;

        import org.apache.cxf.interceptor.LoggingInInterceptor;

        import org.apache.cxf.interceptor.LoggingOutInterceptor;

        import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

        import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

        import org.apache.cxf.transport.http.gzip.GZIPInInterceptor;

        import org.apache.cxf.transport.http.gzip.GZIPOutInterceptor;

        import org.junit.Assert;

        import org.junit.BeforeClass;

        import org.junit.Test;

        public class BigDataServiceTest {

        private static final String address = "http://localhost:9000/ws/compress/bigDataService";

        @BeforeClass

        public static void setUpBeforeClass() throws Exception {

        JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();

        factoryBean.getInInterceptors().add(new LoggingInInterceptor());

        factoryBean.getOutInterceptors().add(new LoggingOutInterceptor());

        factoryBean.getInInterceptors().add(new GZIPInInterceptor());

        factoryBean.getOutInterceptors().add(new GZIPOutInterceptor());

        factoryBean.setServiceClass(BigDataServiceImpl.class);

        factoryBean.setAddress(address);

        factoryBean.create();

        }

        @Test

        public void testGetBigData() {

        JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();

        factoryBean.setAddress(address);

        factoryBean.setServiceClass(BigDataService.class);

        Object obj = factoryBean.create();

        Client client = ClientProxy.getClient(obj);

        Endpoint endpoint = client.getEndpoint();

        endpoint.getInInterceptors().add(new GZIPInInterceptor());

        endpoint.getOutInterceptors().add(new GZIPOutInterceptor());

        BigDataService service = (BigDataService) obj;

        Assert.assertNotNull(service);

        String name = "my big data";

        int size = 1024 * 1024 * 10;

        long start = System.currentTimeMillis();

        BigData bigData = service.getBigData(name, size);

        long stop = System.currentTimeMillis();

        System.out.println("Time: " + (stop - start));

        Assert.assertNotNull(bigData);

        Assert.assertEquals(name, bigData.getName());

        Assert.assertEquals(size, bigData.getData().length());

        }

        }

        5. 運(yùn)行此unit test,可以在日志中看到數(shù)據(jù)包前后大小和內(nèi)容。

      【如何壓縮Web Service數(shù)據(jù)】相關(guān)文章:

      Web Service的開發(fā)與應(yīng)用基礎(chǔ)07-12

      web數(shù)據(jù)挖掘技術(shù)分析與研究09-06

      Web數(shù)據(jù)挖掘技術(shù)探析論文10-22

      如何面試Web前端開發(fā)10-10

      Flash Web結(jié)構(gòu)之?dāng)?shù)據(jù)顯示層介紹07-27

      如何由淺入深實(shí)踐學(xué)習(xí) Web 標(biāo)準(zhǔn)10-10

      如何識(shí)別和防御Web網(wǎng)頁(yè)木馬09-11

      如何保證Web服務(wù)器安全06-30

      Excel讓如何數(shù)據(jù)按需排序10-01

      Excel如何橫向輸入數(shù)據(jù)07-28

      主站蜘蛛池模板: av乱色熟女一区二区三区| 日韩人妻一级av一区二区| 在线免费不卡av网站一区| 亚洲福利第一页在线观看| 综合久久久久6亚洲综合 | 狠狠亚洲婷婷综合色香五月| 日韩久久久黄色一级av| 成人国产精品一区二区免费麻豆| 国产在线一区二区三区在线观看 | 日本一区二区三区观看视频| 亚洲AV无码中文AV日韩A| 婷婷色亚洲五月在线国产精品麻豆| 柏乡县| 象山县| 罗定市| 永兴县| 邮箱| 亚洲午夜无码视频在线播放| 汽车| 读书| 一级无码啪啪| 美女精品国产一区二区三区| 熟女丝袜美腿亚洲一区二区三区 | 91精品国产无码在线观看| 国产不卡一区二区三区视频| 日本一区二区最新在线观看| 国产亚洲AV天天夜夜无码| 国内精品久久久久国产盗摄| 激情 一区二区| 亚洲日本人妻中文字幕| 日韩精品极品在线观看视频| 亚洲国产精品夜男人天堂| 免费在线观看性感女主播内射| 强d乱码中文字幕熟女1000部| 国产AV秘 无码一区二区三区| 国产精品18久久久久久首页| 久久视频一区二区三区在线观看| 日本嗯啊在线观看| 日本久久一区二区三区高清 | 施甸县| 通州市|