<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 禮物
    太強了  回復  更多評論
      

    主站蜘蛛池模板: 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲日本成本人观看| 在线涩涩免费观看国产精品| 亚洲AV无码一区二三区| 亚洲色大成网站www| 91成人免费在线视频| 久久精品国产亚洲av日韩| 一个人免费视频在线观看www| 亚洲日本韩国在线| 免费人成又黄又爽的视频在线电影| 大陆一级毛片免费视频观看i| 亚洲伊人久久大香线蕉在观| 久久午夜免费鲁丝片| 亚洲国产精品一区第二页| aaa毛片免费观看| 亚洲一级黄色视频| 男女污污污超污视频免费在线看| 日韩成人免费aa在线看| 亚洲精品国产综合久久久久紧| 中国在线观看免费国语版| 亚洲一级免费视频| 无码日韩人妻av一区免费| 亚洲一级大黄大色毛片| 中文字幕人成无码免费视频| 亚洲国产日韩综合久久精品| 在线精品一卡乱码免费| 亚洲人成高清在线播放| 青青青国产在线观看免费网站| 亚洲国产精品乱码在线观看97 | 91情国产l精品国产亚洲区| 日本免费中文字幕| 亚洲国产综合专区电影在线| 国产精品区免费视频| 亚洲国产天堂久久综合网站| 99国产精品视频免费观看| 亚洲精品乱码久久久久久下载 | 亚洲av日韩av永久在线观看| 在线免费观看韩国a视频| 国产亚洲情侣久久精品| 亚洲国产一级在线观看| 丁香花在线观看免费观看图片|