<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
    1、選擇要轉換的java文件,生成class

      2、寫wsdd

      3、發布

      剩下的就只有調用了wsdl2java

      我原來的系統是CICS的,對后臺封裝了一層,現在用webservice再封裝一層,前臺頁面,控制,數據傳輸,數據處理統統都可以分開了,爽

      //以下是從網上找的關于AXIS的入門教程

      一、Axis安裝 1、環境 J2SE SDK 1.3 or 1.4: 我使用 1.4.2 Servlet Container: 我使用的Tomcat 5.0

      


      2、到 http://ws.apache.org/Axis/網站下載Axis安裝包

      3、解壓縮安裝包,將Axis_UNZIP_PATH\Axis-version\webapps下的Axis包拷貝到TOMCAT_HOME\webapps\下,以下約定Axis_HOME為該TOMCAT_HOME\webapps\Axis目錄

      4、啟動tomcat,訪問http://localhost:8080/Axis 檢查安裝是否成功

      5、以上步驟執行成功,可以開發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);

      }

      }

      }

      您也可以寫server-config.wsdd

      <?xml version="1.0" encoding="UTF-8"?>

      <deployment xmlns="http://xml.apache.org/axis/wsdd/"

      xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

      <globalConfiguration>

      <parameter name="adminPassword" value="admin"/>

      <parameter name="attachments.implementation"

      value="org.apache.axis.attachments.AttachmentsImpl"/>

      <parameter name="sendXsiTypes" value="true"/>

      <parameter name="sendMultiRefs" value="true"/>

      <parameter name="sendXMLDeclaration" value="true"/>

      <parameter name="axis.sendMinimizedElements" value="true"/>

      <requestFlow>

      <handler type="java:org.apache.axis.handlers.JWSHandler">

      <parameter name="scope" value="session"/>

      </handler>

      <handler type="java:org.apache.axis.handlers.JWSHandler">

      <parameter name="scope" value="request"/>

      <parameter name="extension" value=".jwr"/>

      </handler>

      </requestFlow>

      </globalConfiguration>

      <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>

      <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>

      <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>

      <handler name="print" type="java:stub.LogHandler"/>

      <service name="sayhello" provider="java:RPC">

      <requestFlow>

      <handler type="print"/>

      </requestFlow>

      <parameter name="className"

      value="stub.server.SayHello"/>

      <parameter name="allowedMethods"

      value="*"/>

      </service>

      <transport name="http">

      <requestFlow>

      <handler type="URLMapper"/>

      <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>

      </requestFlow>

      </transport>

      <transport name="local">

      <responseFlow>

      <handler type="LocalResponder"/>

      </responseFlow>

      </transport>

      </deployment>

    本文來自:http://www.linuxpk.com/46235.html
    posted on 2007-11-21 18:09 禮物 閱讀(347) 評論(0)  編輯  收藏 所屬分類: web service
    主站蜘蛛池模板: 综合久久久久久中文字幕亚洲国产国产综合一区首 | 成人特黄a级毛片免费视频| 亚洲AV无码乱码在线观看裸奔 | 福利片免费一区二区三区| 国产成人A在线观看视频免费 | 亚洲综合色成在线播放| 一级毛片人与动免费观看| 亚洲免费日韩无码系列| 91亚洲精品视频| 美女黄色免费网站| 亚洲精品免费视频| 国内精品免费视频自在线| 亚洲日本VA中文字幕久久道具| 三年片免费高清版 | 国产AV无码专区亚洲AV蜜芽 | 亚洲国产精品无码一线岛国| 今天免费中文字幕视频| 国产片免费福利片永久| 小说区亚洲自拍另类| 亚洲一区二区视频在线观看| 国色精品va在线观看免费视频| 久久久久亚洲av无码专区| 免费毛片a在线观看67194 | 西西人体免费视频| 亚洲国产综合在线| 青草草在线视频永久免费| 男人j进女人p免费视频| 成人福利免费视频| 亚洲av成人中文无码专区| 亚洲人成网77777亚洲色| 午夜成人无码福利免费视频| 亚洲精品美女久久777777| 精品久久8x国产免费观看| 亚洲黄色免费网站| 日本特黄a级高清免费大片| 亚洲啪AV永久无码精品放毛片 | 69天堂人成无码麻豆免费视频| 色欲色欲天天天www亚洲伊| 久久被窝电影亚洲爽爽爽| 最近2019中文字幕mv免费看 | 精品一区二区三区高清免费观看|