<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學(xué);靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評(píng)論 :: 0 Trackbacks
    1、在%TOMCAT_HOME%\webapps中放入axis2.war,這個(gè)可以在www.apache.org下載
    2、啟動(dòng)Tomcat,將該war包解開
    3、服務(wù)端代碼
      
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;

    /**
     * @company      
     *
     * @description 
     *
     * 
    @author      Terry.B.Li
     *
     * @date        2009.1.7
     
    */
    public class WSServer {
        
    public byte[] invoke(String id, byte[] bytes) {
            
            
    byte[] result = null;

            System.out.println(
    "id:" + id);

            Object[] params 
    = byteConvertObj(bytes);
            System.out.print(
    "參數(shù):");
            
    for (Object param : params) {
                System.out.println(param.getClass());
            }

            
    // 通過 Axis2 反射調(diào)用返回的對(duì)象
            Object resultObj = "返回值";
            
            
    //根據(jù)功能號(hào) ID 解析調(diào)用方法

            ByteArrayOutputStream arrayOutputStream 
    = new ByteArrayOutputStream();
            ObjectOutputStream objectOutputStream 
    = null;
            
    try {
                objectOutputStream 
    = new ObjectOutputStream(arrayOutputStream);
                objectOutputStream.writeObject(resultObj);
                
                result 
    = arrayOutputStream.toByteArray();
            } 
    catch (IOException e) {
                e.printStackTrace();
            } 
    finally {
                
    try {
                    objectOutputStream.close();
                } 
    catch (IOException e) {
                    e.printStackTrace();
                }
            }
             
            
    return result;
        }

        
    private Object[] byteConvertObj(byte[] bytes) {
            Object[] result 
    = null;
            ByteArrayInputStream byteArrayInputStream 
    = null;
            ObjectInputStream objectInputStream 
    = null;
            
    try {
                byteArrayInputStream 
    = new ByteArrayInputStream(bytes);
                objectInputStream 
    = new ObjectInputStream(byteArrayInputStream);
                result 
    = (Object[]) objectInputStream.readObject();
            } 
    catch (IOException e) {
                e.printStackTrace();
            } 
    catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            
    return result;
        }
    }

    4、將該代碼編譯后放入%TOMCAT_HOME%\webapps\axis2\WEB-INF\pojo下
    5、客戶端代碼如下
    package com.newegg.lab.ws.client;

    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;

    import javax.xml.namespace.QName;

    import org.apache.axis2.addressing.EndpointReference;
    import org.apache.axis2.client.Options;
    import org.apache.axis2.rpc.client.RPCServiceClient;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    public class WSClient implements Serializable{

        
    private static final long serialVersionUID = -8513162370253557533L;

        
    private static final Log log = LogFactory.getLog(WSClient.class); 
        
        
    private static EndpointReference endpointReference = new EndpointReference("http://localhost:8080/axis2/services/WSServer");
        
        
    private static String namespace = "http://ws.apache.org/axis2";

        
    /**
         * 
    @param args
         
    */
        
    public static void main(String[] args) {
            
    try {
                log.info(invoke(
    "123456""aaa""得到的的""埃擔(dān)罰埃擔(dān)罰",34,new WSClient()));
                } 
    catch (Exception e) {
                    e.printStackTrace();
                }
            log.info(
    "OK");
        }
        
        
    private static Object invoke(String id,Object params){
            Object result 
    = null;
            
    try {
                RPCServiceClient serviceClient 
    = new RPCServiceClient();
                Options options 
    = serviceClient.getOptions();
                options.setTo(endpointReference);
                QName qname 
    = new QName(namespace,"invoke");
                Class[] clz 
    = new Class[]{byte[].class};
                Object[] _params 
    = new Object[]{id,objConvertByte((Object[])params)};
                Object[] results 
    =  serviceClient.invokeBlocking(qname, _params, clz);
                
    byte[] bytes = (byte[]) results[0];
                result 
    = byteConvertObj(bytes);
            } 
    catch (Exception e) {
                e.printStackTrace();
            }
            
    return result;
        }
        
        
    private static byte[] objConvertByte(Object obj){
            
    byte[] result = null;
            ByteArrayOutputStream byteArrayOutputStream 
    = null;
            ObjectOutputStream objectOutputStream 
    = null;
            
    try {
                byteArrayOutputStream 
    = new ByteArrayOutputStream();
                objectOutputStream  
    = new ObjectOutputStream(byteArrayOutputStream);
                objectOutputStream.writeObject(obj);
                result 
    = byteArrayOutputStream.toByteArray();
            } 
    catch (IOException e) {
                e.printStackTrace();
            } 
    finally {
                
    try {
                    objectOutputStream.close();
                    byteArrayOutputStream.close();
                } 
    catch (IOException e) {
                    e.printStackTrace();
                }
            }
            
    return result;
        }
        
        
    private static Object byteConvertObj(byte[] bytes){
            Object result 
    = null;
            ByteArrayInputStream byteArrayInputStream 
    = null;
            ObjectInputStream objectInputStream 
    = null;
            
    try {
                byteArrayInputStream 
    = new ByteArrayInputStream(bytes);
                objectInputStream 
    = new ObjectInputStream(byteArrayInputStream);
                result 
    = objectInputStream.readObject();
            } 
    catch (IOException e) {
                e.printStackTrace();
            } 
    catch (ClassNotFoundException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    return result;
        }
    }

    6、將客戶端代碼打包放入%TOMCAT_HOME%\webapps\axis2\WEB-INF\lib下
    7、啟動(dòng)Tomcat
    8、測(cè)試訪問:http://localhost:8080/axis2/services/WSServer?wsdl
    9、執(zhí)行客戶端代碼

    posted on 2009-01-08 02:25 禮物 閱讀(1019) 評(píng)論(1)  編輯  收藏 所屬分類: web service

    評(píng)論

    # re: (原創(chuàng))用Axis2寫的通用WebService組件 2009-08-10 15:42 禮物
    太強(qiáng)了  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 在线jlzzjlzz免费播放| 永久免费av无码入口国语片| 亚洲AV综合永久无码精品天堂| 亚洲综合色7777情网站777| 亚洲一级毛片中文字幕| 久久精品亚洲AV久久久无码| 亚洲噜噜噜噜噜影院在线播放| 激情综合亚洲色婷婷五月APP| 美女视频黄免费亚洲| 亚洲精品人成网线在线播放va | 成年女人永久免费观看片| 夫妻免费无码V看片| 国产色爽女小说免费看| 全部免费毛片在线| 久久亚洲中文字幕精品一区四| 亚洲日本va中文字幕久久| 久久亚洲精品无码| 亚洲毛片免费观看| 亚洲欧美日韩中文字幕在线一区 | 亚洲精品高清无码视频| 亚洲色图在线播放| 亚洲国产成人综合| 亚洲av无码兔费综合| 一本到卡二卡三卡免费高 | 亚洲真人无码永久在线观看| 亚洲AV成人片无码网站| 国产精品偷伦视频免费观看了| 无码国产精品一区二区免费式芒果 | 亚洲一区免费视频| 亚洲精品色在线网站| 国产日韩在线视频免费播放| 99xxoo视频在线永久免费观看| 成人免费无码大片a毛片| 亚洲国产精品成人AV无码久久综合影院| 亚洲一区二区三区香蕉| 亚洲电影在线播放| 麻豆安全免费网址入口| 久久亚洲免费视频| 免费的涩涩视频在线播放| 在线亚洲午夜理论AV大片| 亚洲喷奶水中文字幕电影|