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

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

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

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    1、在%TOMCAT_HOME%\webapps中放入axis2.war,這個可以在www.apache.org下載
    2、啟動Tomcat,將該war包解開
    3、服務端代碼
      
    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(
    "參數:");
            
    for (Object param : params) {
                System.out.println(param.getClass());
            }

            
    // 通過 Axis2 反射調用返回的對象
            Object resultObj = "返回值";
            
            
    //根據功能號 ID 解析調用方法

            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""得到的的""埃擔罰埃擔罰",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、啟動Tomcat
    8、測試訪問:http://localhost:8080/axis2/services/WSServer?wsdl
    9、執行客戶端代碼

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

    評論

    # re: (原創)用Axis2寫的通用WebService組件 2009-08-10 15:42 禮物
    太強了  回復  更多評論
      

    主站蜘蛛池模板: 亚洲精品无码永久在线观看男男| 免费一本色道久久一区| 免费中文字幕一级毛片| 456亚洲人成在线播放网站| 24小时免费看片| 久久精品亚洲一区二区三区浴池| 本免费AV无码专区一区| 亚洲精品无码久久不卡| 亚洲午夜AV无码专区在线播放| 亚洲欧美国产精品专区久久| 免费看又爽又黄禁片视频1000| 亚洲另类无码专区首页| 国产又黄又爽又猛的免费视频播放| 亚洲JIZZJIZZ妇女| 亚洲国产精品无码久久九九| 一区二区三区在线免费| 中文亚洲AV片不卡在线观看| 精品国产免费一区二区三区香蕉| 99久久亚洲精品无码毛片| 无码国产精品一区二区免费| 亚洲色大成网站WWW国产| xvideos亚洲永久网址| 亚洲av无码一区二区三区网站| 中文字幕免费高清视频| 亚洲偷偷自拍高清| 大胆亚洲人体视频| 国产拍拍拍无码视频免费| 亚洲精品无码久久毛片波多野吉衣| 成年女人免费碰碰视频| 一个人看的免费观看日本视频www| 久久亚洲国产午夜精品理论片| 91精品国产免费久久国语麻豆| 亚洲男人天堂2018av| 亚洲一区精品伊人久久伊人| 欧洲精品99毛片免费高清观看 | 一级做性色a爰片久久毛片免费| 国产亚洲成av人片在线观看| 国产人在线成免费视频| 一个人看的免费观看日本视频www| 亚洲色图视频在线观看| 免费二级毛片免费完整视频|