<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
    主站蜘蛛池模板: 亚洲精品伊人久久久久| 亚洲av无码片区一区二区三区| 国产精品成人亚洲| 女人被男人躁的女爽免费视频| 欧洲 亚洲 国产图片综合| 亚洲成人在线免费观看| 亚洲国产日产无码精品| 国产一卡2卡3卡4卡无卡免费视频 国产一卡二卡3卡四卡免费 | 亚洲视屏在线观看| 日韩免费无码视频一区二区三区| 亚洲人成图片小说网站| 日韩电影免费在线观看网站| 亚洲av无码一区二区三区乱子伦 | 中文字幕乱理片免费完整的| 亚洲精品国产成人片| 免费播放在线日本感人片| 中文字幕亚洲综合精品一区| 日本最新免费网站| 亚洲AV男人的天堂在线观看| 国产免费av一区二区三区| 91av免费在线视频| 亚洲av伊人久久综合密臀性色| 亚洲精品视频在线免费| 亚洲精品宾馆在线精品酒店| 亚洲精品线路一在线观看| 久久精品乱子伦免费| 亚洲另类自拍丝袜第1页| 国产真实伦在线视频免费观看| www永久免费视频| 亚洲AV成人精品网站在线播放| 成视频年人黄网站免费视频| 午夜在线亚洲男人午在线| 亚洲国产精品成人精品无码区在线| AV无码免费永久在线观看| 特级aa**毛片免费观看| 亚洲国产成人久久综合一| 男女啪啪永久免费观看网站| 成人黄网站片免费视频 | aa午夜免费剧场| 亚洲精品美女在线观看播放| 国产无遮挡色视频免费视频|