使用myEclipse,tomcat 和Axis發布webService


上篇文檔

一、創建web工程

1、 MyEclipse中新建web工程,名稱為sayHello2Axis。工程文件存放在目錄:E:\workspace\sayHello2Axis下。

2、 導入axis包: 把axis的lib目錄下的所有jar包包括上篇文檔提到的幾個jar拷貝到工程下面的WebRoot\WEB-INF\lib下。

3、 修改web.xml:如果沒有特殊情況,最簡單的方法就是用axis提供的樣例項目axis中的web.xml直接替換工程中web.xml。例如本例,就用axis-bin-1_4\axis-1_4\webapps\axis\WEB-INF\web.xml替換工程sayHello2Axis下的web.xml

二、創建WebService

   1、在工程sayHello2Axis里新建要實現方法的接口:本例新建SayHello2Who.java,放在com.osg.server包中。代碼如下:

 

 
         

package com.osg.server;

public interface SayHello2Who

{

  public String sayHello2Teacher(String name);

  public Student sayHello2Student(String name);
}

    2、把該類生成wsdl文件

Axis里有一個Java2WSDL方法,用於把java類生成wsdl。當然你可以寫命令行手動執行這個方法。這里講下使用MyEclipse來運行這個方法。

在SayHello2Who.java類文件上右鍵,Run As——》Open Run Dialog:

如下圖:

彈出窗口,新建一個configuration,如圖,然后

Main選項卡中的main class 輸入:

org.apache.axis.wsdl.Java2WSDL

 

Arguments選項卡中的program arguments輸入

 

-o SayHello.wsdl
-l "http://localhost:8080/sayHello2Axis/services/SayHello"
-n "urn:SayHello"
-p"com.osg.server" "urn:SayHello"
com.osg.server.SayHello

如下圖

然后點擊Run。會在工程目錄E:\workspace\sayHello2Axis下生成SayHello.wsdl文件。

 3、用上一步生成好的WSDL文件生成Server端代碼

  Axis里面有WSDL2Java的方法,用於把wsdl文件生成java Server類。同上,在SayHello.wsdl文件上右鍵Run As——》Open Run Dialog,彈出窗口,新建configuration。這次使用

org.apache.axis.wsdl.WSDL2Java

如下圖:

 

參數是:

-t -B -v -D -s -p com.osg.server E:\workspace\sayHello2Axis\SayHello.wsdl

如圖:

Run后,將在項目的根目錄下生成相關的服務類、build.xmldeploy.wsdd,undesploy.wsdd等。我們把他們拷貝到工程里的src下即可(注意文件路徑的正確性):

 

 4、服務的部署和生成server_config.wsdd(這步是關鍵)

  先將此項目部署到Tomcat下面,啟動tomcat,然后運行命令行cmd,到達web服務器里類和deploy.wsdd所在的目錄,如本例的是D:\Application\apache-tomcat-6.0.20\webapps\sayHello2Axis\WEB-INF\classes\com\osg\server

執行如下命令:

java -Djava.ext.dirs=E:\axis-1_4\lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/sayHello2Axis/services/SayHello?wsdl deploy.wsdd

 

前面的路徑是axis解壓路徑里的lib路徑,后面是未來的service的wsdl地址。

生成成功后,D:\Application\apache-tomcat-6.0.20\webapps\sayHello2Axis\WEB-INF目錄下便可看到server-config.wsdd文件。

5、測試剛發布好的WebService

在WebService的實現類SayHelloSoapBindingImpl.java里添加如下代碼:

 

package com.osg.server;

public class SayHelloSoapBindingImpl implements com.osg.server.SayHello2Who
{
    public java.lang.String sayHello2Teacher(java.lang.String in0)
            throws java.rmi.RemoteException
    {
        return in0+" say: Hello Teacher!";
    }

    public com.osg.server.Student sayHello2Student(java.lang.String in0)
            throws java.rmi.RemoteException
    {
        Student student = new Student();
        student.setName(in0);
        student.setAge(20);
        student.setSex("male");
        return student;
    }

}

 

重啟tomcat,輸入http://localhost:8080/sayHello2Axis/services訪問。測試的時候亦可以用SoapUI工具進行模擬測試。

四.生成客戶端:

此處和生成服務端代碼類似,僅僅是參數不同。

參數為:

E:\workspace\sayHello2Axis\SayHello.wsdl -t -p com.osg.client

如下圖所示

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM