★33°空間‰


                                 ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                                 ----智力比知識重要,素質比智力重要,覺悟比素質更重要
          posts - 110,comments - 35,trackbacks - 0
          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          MSN: yeiwei2008@hotmail.com
              你溫柔的臉旁總是徜徉著快樂的神情,你調皮的眼神總是扣人心弦,每次走過都會被你糾纏,雖然有時候有點不講理,不過我到是很喜歡!
              你的倔強讓你變的有點高傲,高傲的你成為了我獵奇的對象,當與你相識的那一刻,我才真正的了解,其實你根本沒什么,也是小女人一個,需要疼愛,需要哄,需要愛!無聊的時候我總會上網上看著你,雖然有時候我們誰都不說話只是靜靜的待在那里!

          常用鏈接

          留言簿(4)

          隨筆分類(80)

          隨筆檔案(110)

          文章分類(28)

          文章檔案(31)

          新聞檔案(1)

          相冊

          收藏夾

          友情鏈接

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 61835
          • 排名 - 854

          最新評論

          閱讀排行榜

          評論排行榜

          簡單的webservice開發例子

          Axis支持三種web ?service的部署和開發,分別為: ?
          ?
          1、Dynamic ?Invocation ?Interface ?( ?DII) ?
          ?
          2、Stubs方式 ?
          ?
          3、Dynamic ?Proxy方式 ?
          ?
          二、編寫DII(Dynamic ?Invocation ?Interface ?)方式web服務 ?
          ?
          1.編寫服務端程序HelloClient ?
          ?
          ?
          public ?class ?HelloClient ?
          { ?
          ? ? ? ?public ?String ?getName(String ?name) ?
          ? ? ? ?{ ?
          ? ? ? ? ? ? ? ?return ?"hello ?"+name; ?
          ? ? ? ?} ?
          } ?
          ? ?
          ?
          ?
          ?
          2、將源碼拷貝到Axis_HOME下,重命名為 ?HelloClient.jws ? ?
          ?
          3、訪問連接http://localhost:8080/Axis/HelloClient.jws?wsdl,頁面顯示Axis自動生成的wsdl ? ?
          ?
          4、編寫訪問服務的客戶端 ?TestHelloClient.java ? ?
          ?
          ?
          import ?org.apache.Axis.client.Call; ?
          import ?org.apache.Axis.client.Service; ?
          import ?javax.xml.namespace.QName; ?
          import ?javax.xml.rpc.ServiceException; ?
          import ?java.net.MalformedURLException; ?
          import ?java.rmi.RemoteException; ?
          ?
          public ?class ?SayHelloClient2 ?
          { ?
          ? ? ? ?public ?static ?void ?main(String[] ?args) ?
          ?? ?? ?? ??{ ?
          ? ? ? ? ? ? ? ?try ?
          ?? ?? ?? ?? ?? ?? ?? ??{ ?
          ? ?String ?endpoint ?= ?
          ? ?"http://localhost:8080/Axis/HelloClient.jws"; ?
          ?
          ? ? ? ?Service ?service ?= ?new ?Service(); ?
          ? ? ? ? ? ? ? ? ? ? ? ?Call ?call ?= ?null; ?
          ?
          ? ? ? ? ? ? ? ? ? ? ? ?call ?= ?(Call) ?service.createCall(); ?
          ?
          ? ? ? ? ? ? ? ? ? ? ? ?call.setOperationName(new ?QName( ?
          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"http://localhost:8080/Axis/HelloClient.jws", ? ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ? ?"getName")); ?
          ? ? ? ? ? ? ? ? ? ? ? ?call.setTargetEndpointAddress ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??(new ?java.net.URL(endpoint)); ?
          ?
          ? ? ? ? ? ? ? ? ? ? ? ?String ?ret ?= ?(String) ?call.invoke(new ?Object[] ? ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??{"zhangsan"}); ?
          ? ? ? ? ? ? ? ? ? ? ? ?System.out.println("return ?value ?is ?" ?+ ?ret); ?
          ? ? ? ? ? ? ? ?} ? ?
          ?? ?? ?? ?? ?? ?? ?? ??catch ?(Exception ?ex) ?
          ?? ?? ?? ?? ?? ?? ?? ??{ ?
          ? ? ? ? ? ? ?ex.printStackTrace(); ?
          ? ? ? ? ? ? ? ?} ?
          ? ? ? ?} ?
          } ?
          ? ?
          ?
          ?
          ?
          三、編寫Dynamic ?Proxy方式訪問服務 ? ?
          ?
          1、編寫部署服務端程序,同上邊DII方式,本次仍使用上邊部署的HelloClient ? ?
          ?
          2、編寫代理接口 ? ?
          ?
          ?
          public ?interface ?HelloClientInterface ?
          extends ?java.rmi.Remote ?
          { ?
          ? ? ? ?public ?String ?getName(String ?name) ?
          ?? ?? ?? ??throws ?java.rmi.RemoteException; ?
          } ?
          ? ?
          ?
          ?
          ?
          3、編寫并執行客戶端程序TestHelloClient.java ? ?
          ?
          ?
          import ?javax.xml.rpc.Service; ?
          import ?javax.xml.rpc.ServiceFactory; ?
          import ?java.net.URL; ?
          import ?javax.xml.namespace.QName; ?
          ?
          public ?class ?TestHelloClient ? ?
          { ?
          ? ? ? ?public ?static ?void ?main(String[] ?args) ?
          ?? ?? ?? ??{ ?
          ? ? ? ? ? ? ? ?try ?
          ? ? ? ? ? ? ? ?{ ?
          ? ? ? ? ? ? ? ? ? ? ? ?String ?wsdlUrl ?= ? ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??"http://localhost:8080/Axis/HelloClient.jws?wsdl"; ?
          ? ? ? ? ? ? ? ? ? ? ? ?String ?nameSpaceUri ?= ? ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??"http://localhost:8080/Axis/HelloClient.jws"; ?
          ? ? ? ? ? ? ? ? ? ? ? ?String ?serviceName ?= ?"HelloClientService"; ?
          ? ? ? ? ? ? ? ? ? ? ? ?String ?portName ?= ?"HelloClient"; ?
          ?
          ? ? ? ? ? ? ? ? ? ? ? ?ServiceFactory ?serviceFactory ?= ? ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??ServiceFactory.newInstance(); ?
          ? ? ? ? ? ? ? ? ? ? ? ?Service ?afService ?= ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??serviceFactory.createService(new ?URL(wsdlUrl), ?
          ? ? ? ? ? ? ? ? ?new ?QName(nameSpaceUri, ?serviceName)); ?
          ? ? ? ? ? ? ? ? ? ? ? ?HelloClientInterface ?proxy ?= ?(HelloClientInterface) ?
          ? ? ? ? ? ? ? ?afService.getPort(new ?QName( ?
          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?nameSpaceUri, ?portName), ? ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??HelloClientInterface.class); ?
          ? ? ? ? ? ? ? ? ? ? ? ?System.out.println ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??("return ?value ?is ?"+proxy.getName("john") ?) ?; ?
          ? ? ? ? ? ? ? ?}catch(Exception ?ex) ?
          ? ? ? ? ? ? ? ?{ ?
          ? ? ? ? ? ? ? ? ? ? ? ?ex.printStackTrace() ?; ?
          ? ? ? ? ? ? ? ?} ?
          ? ? ? ?} ?
          } ?
          ? ?
          ?
          ?
          ?
          四、編寫wsdd發布web服務,編寫stub ?client訪問web服務 ? ?
          ?
          1、編寫服務端程序server,SayHello.java,編譯server.SayHello.java ? ?
          ?
          ?
          package ?server; ?
          public ?class ?SayHello ?
          { ?
          ? ? ? ?public ?String ?getName(String ?name) ?
          ? ? ? ?{ ?
          ? ? ? ? ? ? ? ?return ?"hello ?"+name; ?
          ? ? ? ?} ?
          } ?
          2.編寫LogHandler.java ?
          import ?org.apache.Axis.AxisFault; ?
          import ?org.apache.Axis.Handler; ?
          import ?org.apache.Axis.MessageContext; ?
          import ?org.apache.Axis.handlers.BasicHandler; ?
          ?
          import ?java.util.Date; ?
          ?
          public ?class ?LogHandler ? ?
          extends ?BasicHandler ? ?
          { ?
          ?public ?void ?invoke ?
          (MessageContext ?msgContext) ? ?
          throws ?AxisFault ?
          ? ? ? ?{ ?
          ? ? ? ? ? ? ? ?/** ?Log ?an ?access ?each ?time ? ?
          ?? ?? ?? ?? ?? ?? ?? ??we ?get ?invoked. ?
          ? ? ? ? ? ? ? ? ?*/ ?
          ? ? ? ? ? ? ? ?try ?{ ?
          ? ? ? ? ? ? ? ? ? ? ? ?Handler ?serviceHandler ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??= ?msgContext.getService(); ?
          ?
          ? ? ? ? ? ? ? ? ? ? ? ?Integer ?numAccesses ?= ?
          ? ?(Integer)serviceHandler.getOption("accesses"); ?
          ? ? ? ? ? ? ? ? ? ? ? ?if ?(numAccesses ?== ?null) ?
          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?numAccesses ?= ?new ?Integer(0); ?
          numAccesses ?= ?new ?Integer ?
          (numAccesses.intValue() ?+ ?1); ?
          Date ?date ?= ?new ?Date(); ?
          ?String ?result ?= ? ?
          ?date ?+ ?": ?service ?" ?+ ?
          msgContext.getTargetService() ?+ ?
          " ?accessed ?" ?+ ?numAccesses ?+ ?" ?time(s)."; ?
          serviceHandler.setOption ?
          ("accesses", ?numAccesses); ?
          System.out.println(result); ?
          ? ? ? ? ? ? ? ?} ?catch ?(Exception ?e) ?
          ?? ?? ?? ?? ?? ?? ?? ??{ ?
          ? ? ? ? ? ? ? ? ? ? ? ?throw ?AxisFault.makeFault(e); ?
          ? ? ? ? ? ? ? ?} ?
          ? ? ? ?} ?
          } ?
          ? ?
          ?
          ?
          ?
          3、編寫wsdd文件 ? ?
          ?
          ?
          deploy.wsdd ?
          <deployment ?xmlns= ?
          "http://xml.apache.org/Axis/wsdd/" ?
          ? ?xmlns:java= ?
          ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??"http://xml.apache.org/Axis/wsdd/providers/java"> ? ? ? ? ? ? ? ? ? ? ? ?
          ? ? ?<handler ?name="print" ?type="java:LogHandler"/> ? ?
          ?<service ?name="sayhello" ?
          ?provider="java:RPC"> ?
          ? ? ?<requestFlow> ?
          ? ? ? ? ?<handler ?type="print"/> ?
          ? ? ?</requestFlow> ?
          ? ?<parameter ?name="className" ? ?
          ? ?value="server.SayHello"/> ?
          ? ?<parameter ?name="allowedMethods" ?
          ? ?value="*"/> ? ? ?
          ?</service> ?
          </deployment> ?
          ? ?
          ?
          ?
          ?
          3、將編譯后的文件拷貝到Axis_HOME/WEB-INF/classes下,如:D:\tomcat\webapps\Axis\WEB-INF\classes ? ?
          ?
          4、發布服務: ? ?
          ?
          java ?org.apache.Axis.client.AdminClient ?deploy.wsdd ? ?
          ?
          5、生成client ?stub文件 ? ?
          ?
          a:方式1 ? ?
          ?
          將SayHello.java拷貝到Axis_HOME/下,重命名為SayHello.jws, ? ?
          ?
          執行下面的命令生存client ?stub ? ?
          ?
          ?
          java ?org.apache.Axis.wsdl.WSDL2Java ? ?
          -p ?client ? ?http://localhost:8080 ?
          /Axis/services/SayHello.jws?wsdl ?
          ? ?
          ?
          ?
          ?
          b:方式2 ? ?
          ?
          執行如下命令生成SayHello.wsdl ? ?
          ?
          ?
          java ?org.apache.Axis.wsdl.Java2WSDL ?
          -oSayHello.wsdl ?-lhttp://localhost:8080 ?
          /Axis/services/SayHello ?-nsayhello ?server.SayHello ?
          ? ?
          ?
          ?
          ?
          執行如下命令生成client ?stub ? ?
          ?
          ?
          java ?org.apache.Axis.wsdl.WSDL2Java ? ?
          SayHello.wsdl ? ?-p ?client ?
          ? ?
          ?
          ?
          ?
          生成的stub ?client文件列表為: ? ?
          ?
          1.SayHello.java ? ?
          ?
          2.SayHelloService.java。 ? ?
          ?
          3.SayHelloServiceLocator.java ? ?
          ?
          4.SayHelloSoapBindingStub.java ? ?
          ?
          6、編寫客戶端程序,編譯并執行 ? ?
          ?
          ?
          public ?class ?SayHelloClient ?
          { ?
          ? ? ? ?public ?static ?void ?main(String[] ?args) ?
          ?? ?? ?? ??{ ?
          ? ? ? ? ? ? ? ?try ?
          ?? ?? ?? ?? ?? ?? ?? ??{ ?
          ? ? ? ?SayHelloService ?service ?= ?new ?client. ?
          ? ? ? ? ? ? ?SayHelloServiceLocator(); ?
          ? ? ? ? ? ? ? ? ? ?client.SayHello_PortType ? ?
          ?? ?? ?? ?? ?? ?? ?? ?? ? ?client ?= ?service.getSayHello(); ?
          ? ? ? ? ? ? ? ? ? ? ? ?String ?retValue=client.getName("zhangsan"); ?
          ? ? ? ? ? ? ? ? ? ? ? ?System.out.println(retValue); ?
          } ? ?
          catch ?(Exception ?e) ?
          { ?
          ?System.err.println ?
          ?("Execution ?failed. ?Exception: ?" ?+ ?e); ?
          ? ? ? ? ? ? ? ?} ?
          ? ? ? ?} ?
          }??

          posted on 2007-03-23 10:30 圣域飛俠 閱讀(229) 評論(0)  編輯  收藏 所屬分類: 轉載
          主站蜘蛛池模板: 韶山市| 聂拉木县| 长春市| 望城县| 调兵山市| 玛沁县| 札达县| 山阴县| 新乡县| 商南县| 太仆寺旗| 洪泽县| 含山县| 恩平市| 东兴市| 新邵县| 宜丰县| 开化县| 原平市| 涞源县| 兴和县| 泗洪县| 惠安县| 吉木萨尔县| 三门县| 花莲县| 渝北区| 崇仁县| 景洪市| 临安市| 斗六市| 东安县| 甘肃省| 迁西县| 东台市| 洞头县| 郓城县| 宕昌县| 山东省| 怀远县| 白山市|