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
          主站蜘蛛池模板: 元朗区| 丰城市| 邢台县| 兖州市| 五华县| 鸡西市| 礼泉县| 磐安县| 望谟县| 辽中县| 洪江市| 林芝县| 定州市| 出国| 芮城县| 宁武县| 海门市| 土默特左旗| 临沭县| 获嘉县| 河南省| 新巴尔虎右旗| 阳江市| 社旗县| 奈曼旗| 石阡县| 东海县| 商南县| 宣城市| 满城县| 紫金县| 达尔| 八宿县| 巴彦淖尔市| 墨竹工卡县| 抚宁县| 婺源县| 西充县| 福贡县| 营山县| 丘北县|