Terry.Li-彬

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
          只是個簡單的例子,能說明問題就行。
          服務端:
          package?com.ws.server;

          import?java.util.Iterator;

          import?javax.xml.stream.XMLStreamException;

          import?org.apache.axiom.om.OMElement;
          import?org.apache.axiom.om.OMNode;
          /**
          ?*?@company?LuckyStar?工作室
          ?*
          ?*?@description?Axis2?WebService?服務端?(OM模式)
          ?*
          ?*?
          @author?李彬
          ?*
          ?*?@date?2009-8-12
          ?
          */
          public?class?MyServer?{
          ????
          public?OMElement?invoke(OMElement?element)?throws?XMLStreamException{
          ????????
          ????????element.build();
          ????????
          ????????Iterator
          <OMNode>?iterator?=?element.getChildElements();
          ????????
          while(iterator.hasNext()){
          ????????????OMNode?node?
          =?iterator.next();
          ????????????
          if?(node.getType()?==?OMNode.ELEMENT_NODE)?{
          ????????????????OMElement?omElement?
          =?(OMElement)node;
          ????????????????
          if?(omElement.getLocalName().equals("value"))?{
          ????????????????????String?temp?
          =?omElement.getText().trim();
          ????????????????????System.out.println(
          "Service?Value1:"+temp);
          ????????????????}
          else?if(omElement.getLocalName().equals("value2")){
          ????????????????????String?temp?
          =?omElement.getText().trim();
          ????????????????????System.out.println(
          "Service?Value2:"+temp);
          ????????????????}
          ????????????}
          ????????}
          ????????
          ????????element.detach();
          ????????
          ????????
          return?element;
          ????}
          ????
          }

          服務端配置文件 META-INF/services.xml
          <?xml?version="1.0"?encoding="utf-8"?>
          <serviceGroup>
          ????
          <service?name="myservice">
          ????????
          <parameter?name="ServiceClass"?locked="false">com.ws.server.MyServer</parameter>
          ????????
          <operation?name="invoke">
          ????????????
          <messageReceiver?class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"></messageReceiver>
          ????????????
          <actionMapping>urn:invoke</actionMapping>
          ????????
          </operation>
          ????
          </service>
          </serviceGroup>

          打包(aar包)放入%tomcat_home%/webapps/axis2/WEB-INF/service下,然后啟動服務就oK了

          下面是客戶端
          package?com.ws.client;

          import?javax.xml.namespace.QName;

          import?org.apache.axiom.om.OMAbstractFactory;
          import?org.apache.axiom.om.OMElement;
          import?org.apache.axiom.om.OMFactory;
          import?org.apache.axiom.om.OMNamespace;
          import?org.apache.axis2.AxisFault;
          import?org.apache.axis2.addressing.EndpointReference;
          import?org.apache.axis2.client.Options;
          import?org.apache.axis2.rpc.client.RPCServiceClient;
          /**
          ?*?@company?LuckyStar?工作室
          ?*
          ?*?@description?Axis2?WebService?客戶端?(OM模式)
          ?*
          ?*?
          @author?李彬
          ?*
          ?*?@date?2009-8-12
          ?
          */
          public?class?WsTest?{
          ????
          ????
          private?static?OMElement?getInvokeOMElement(){
          ????????OMFactory?factory?
          =?OMAbstractFactory.getOMFactory();
          ????????OMNamespace?namespace?
          =?factory.createOMNamespace("http://www.liwu.com",?"liwu");
          ????????OMElement?method?
          =?factory.createOMElement("invoke",namespace);
          ????????OMElement?value?
          =?factory.createOMElement("value",namespace);
          ????????value.addChild(factory.createOMText(value,?
          "Hello?terry!!!"));
          ????????
          ????????OMElement?value2?
          =?factory.createOMElement("value",namespace);
          ????????value2.addChild(factory.createOMText(value2,?
          "Hello?wuxin!!"));
          ????????
          ????????method.addChild(value);
          ????????
          ????????method.addChild(value2);
          ????????
          return?method;
          ????}
          ????
          ????@SuppressWarnings(
          "unchecked")
          ????
          public?static?void?main(String[]?args)?{
          ????????EndpointReference?endpointReference?
          =?new?EndpointReference("http://localhost/axis2/services/myservice");
          ????????OMElement?method?
          =?getInvokeOMElement();
          ????????Options?options?
          =?new?Options();
          ????????options.setTo(endpointReference);
          ????????ServiceClient?client;
          ????????
          try?{
          ????????????client?
          =?new?ServiceClient();
          ????????????client.setOptions(options);
          ????????????OMElement?value?
          =?client.sendReceive(method);
          ????????????System.out.println(value);
          ????????????System.out.println();
          ????????????Iterator
          <OMNode>?iterator?=?value.getChildElements();
          ????????????
          while(iterator.hasNext()){
          ????????????????OMNode?node?
          =?iterator.next();
          ????????????????
          if?(node.getType()?==?OMNode.ELEMENT_NODE)?{
          ????????????????????OMElement?omElement?
          =?(OMElement)node;
          ????????????????????
          if?(omElement.getLocalName().equals("value"))?{
          ????????????????????????String?temp?
          =?omElement.getText().trim();
          ????????????????????????System.out.println(temp);
          ????????????????????}
          ????????????????}
          ????????????}
          ????????}?
          catch?(AxisFault?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????}
          }




          posted on 2009-09-10 13:33 禮物 閱讀(954) 評論(0)  編輯  收藏 所屬分類: web serviceAxis
          主站蜘蛛池模板: 于都县| 兰州市| 芮城县| 五原县| 丰县| 五莲县| 金川县| 庄河市| 彰化市| 江油市| 吉木乃县| 武乡县| 微山县| 前郭尔| 苍南县| 怀集县| 卢龙县| 武乡县| 连州市| 象州县| 当雄县| 二手房| 班玛县| 辛集市| 忻州市| 张家川| 沙河市| 姚安县| 永昌县| 万宁市| 新沂市| 东城区| 万盛区| 长兴县| 泾川县| 双峰县| 怀仁县| 天门市| 乌恰县| 德清县| 永兴县|