<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

    一、對象參數的傳遞

    首先是我們要傳輸的變量對象Order,代碼如下:

    package samples.userguide.example5;
    public class Order
    {
        private String customerName;

        private String shippingAddress;
        
        public String getCustomerName()
        { return customerName; }
        public void setCustomerName(String name)
        { customerName = name; }
    }

    要發布的services的代碼如下:

    package samples.userguide.example5;

    public class BeanService
    {
        public Order getNewOrder(Order order)
        {
            order.setCustomerName("liuyujun");
            return order;
        }

    }

    然后我們只要在配置文件server-config.wsdd里加入下面這段就可以發布了

    <service name="OrderProcessor" provider="java:RPC">
            <parameter name="className" value="samples.userguide.example5.BeanService"/>
            <parameter name="allowedMethods" value="*"/>
            <beanMapping qname="myNS:Order" xmlns:myNS="urn:BeanService" languageSpecificType="java:samples.userguide.example5.Order"/>
        </service>

    特別要注意多了beanMapping這部分,qname指明我們用自己命名空間里的哪個對象,xmlns:myNS則指明了我們的命名空間,后面還一個指明了用到的對象類。

    客戶端調用程序:

    package samples.userguide.example5;

    public class Client
    {

        private final static String targetEndpointAddress = "http://localhost:8080/axis/services/OrderProcessor";
        private final static QName    qn      = new QName( "urn:BeanService", "Order" );


        public static void main(String [] args) throws Exception
        {

    //創建一個參數對象
            Order order = new Order();
            order.setCustomerName("Glen Daniels");


            Service service = new Service();
            Call call = (Call) service.createCall();

    //注冊對象類型
            call.registerTypeMapping(Order.class, qn,
                                     new org.apache.axis.encoding.ser.
                                     BeanSerializerFactory(Order.class, qn),
                                     new org.apache.axis.encoding.ser.
                                     BeanDeserializerFactory(Order.class, qn));
            call.setTargetEndpointAddress(new java.net.URL(targetEndpointAddress));


            call.setOperationName(new QName("OrderProcessor", "getNewOrder"));
                call.addParameter("order", qn, ParameterMode.IN);
                call.setReturnType(qn, Order.class);
             Order   newOrder = (Order) call.invoke(new Object[] {order});
            System.out.println("new custname:"+newOrder.getCustomerName());
        }
    }
    這樣就能看到返回的效果了;

     二、獲得訪問者信息

    MessageContext context = MessageContext.getCurrentContext();
            HttpServletRequest req = (HttpServletRequest) context.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);

    這樣就可以得到ruquest對象獲得相關信息了,當然request的有些功能是用不了的,比如,getSession就是無效的


    posted on 2007-11-24 14:46 禮物 閱讀(595) 評論(0)  編輯  收藏 所屬分類: webservice
    主站蜘蛛池模板: 亚洲国产精品无码专区影院| jizz日本免费| 中文字幕一区二区免费| 女人18特级一级毛片免费视频| 亚洲人成电影亚洲人成9999网| 色哟哟国产精品免费观看| 欧洲精品免费一区二区三区| 亚洲丰满熟女一区二区v| 人妻丰满熟妇无码区免费| 久久精品国产亚洲| 日本免费人成网ww555在线| 亚洲熟妇无码八AV在线播放| 日韩免费在线中文字幕| 337p日本欧洲亚洲大胆精品555588| 日韩电影免费在线观看| 色噜噜的亚洲男人的天堂| 波多野结衣一区二区免费视频| 精品亚洲国产成人av| 久久青青成人亚洲精品| 成年女人永久免费观看片| 妇女自拍偷自拍亚洲精品| 亚洲欧洲国产日韩精品| 国产乱人免费视频| 51午夜精品免费视频| 亚洲sss综合天堂久久久| 最近的中文字幕大全免费版| 亚洲欧洲日韩极速播放| 国产福利免费观看| 国产精品免费久久久久电影网| 亚洲人成影院在线高清| 国产精品亚洲A∨天堂不卡| 99无码人妻一区二区三区免费| 狠狠色香婷婷久久亚洲精品| 亚洲精品~无码抽插| 亚洲男人的天堂在线va拉文| a级在线免费观看| 亚洲AV成人无码网天堂| 亚洲欧洲日产国码无码网站 | 一级一黄在线观看视频免费| 亚洲午夜久久久久久久久电影网 | 亚洲精品高清一二区久久|