Terry.Li-彬

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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            143 隨筆 :: 344 文章 :: 130 評(píng)論 :: 0 Trackbacks
          <2007年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(19)

          隨筆分類(lèi)(107)

          隨筆檔案(141)

          文章分類(lèi)(284)

          文章檔案(342)

          相冊(cè)

          收藏夾(58)

          家裝

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          一、對(duì)象參數(shù)的傳遞

          首先是我們要傳輸?shù)淖兞繉?duì)象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; }
          }

          要發(fā)布的services的代碼如下:

          package samples.userguide.example5;

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

          }

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

          <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指明我們用自己命名空間里的哪個(gè)對(duì)象,xmlns:myNS則指明了我們的命名空間,后面還一個(gè)指明了用到的對(duì)象類(lèi)。

          客戶端調(diào)用程序:

          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
              {

          //創(chuàng)建一個(gè)參數(shù)對(duì)象
                  Order order = new Order();
                  order.setCustomerName("Glen Daniels");


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

          //注冊(cè)對(duì)象類(lèi)型
                  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());
              }
          }
          這樣就能看到返回的效果了;

           二、獲得訪問(wèn)者信息

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

          這樣就可以得到ruquest對(duì)象獲得相關(guān)信息了,當(dāng)然request的有些功能是用不了的,比如,getSession就是無(wú)效的


          posted on 2007-11-24 14:46 禮物 閱讀(596) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): webservice
          主站蜘蛛池模板: 叙永县| 黄冈市| 泊头市| 陇南市| 怀远县| 拜城县| 遂宁市| 绥芬河市| 资源县| 八宿县| 永年县| 宁武县| 集安市| 嘉善县| 吴江市| 卓资县| 山丹县| 汕尾市| 韶山市| 靖江市| 沧州市| 革吉县| 郴州市| 石家庄市| 从江县| 始兴县| 原平市| 宣汉县| 乌鲁木齐市| 仁怀市| 大城县| 芦山县| 策勒县| 石楼县| 武隆县| 霍林郭勒市| 崇义县| 虎林市| 瓦房店市| 蕉岭县| 吉安市|