簡體   English   中英

使用Axis2創建Web服務的步驟 - 客戶端代碼

[英]Steps in creating a web service using Axis2 - The client code

我正在嘗試創建一個Web服務,我的交易工具是:

**

Axis2,Eclipse,Tomcat,Ant

**

我需要從Code創建一個Web服務,即編寫一個基本的java類,它將具有在WSDL中聲明的方法。 然后使用java2WSDL.sh創建我的WSDL。

那么,這種方法是否正確:

  1. 用實際的業務邏輯編寫我的Java類
 package packageNamel; public class Hello{ public void World(String name) { SOP("Hello" + name); } } 
  1. 現在,當我將此Hello.java傳遞給java2WSDL.sh時,這將為我提供WSDL。
  2. 最后,我將編寫services.xml文件,並使用以下dir結構創建Hello.aar:

    Hello.aar

    • 包裹名字
      • 同學們好
    • META-INF
      • 的services.xml
      • MANIFEST.MF
      • Hello.WSDL

現在,我假設,當我將aar放入tomcat1 / webapps / axis2 / WEB-INF / services時,我的服務將被部署

但是,這是我的問題,我如何訪問方法World(String name) ??? !!,即我對客戶端代碼一無所知!

請賜教我制作一個非常基本的Web服務並調用該方法。 上述3個步驟可能是錯誤的。 這是一個社區維基,隨時可以編輯。

謝謝

我假設你只對網絡服務客戶感興趣?

選項1

調用Web服務正在使用Axis2 REST支持 ,例如:

HTTP://本地主機:8080 /的Axis2 /服務/為MyService / myOperation參數1 =一個&參數2 =兩個

選項2

使用SOAPUI 它可以通過讀取服務的WSDL為您生成SOAP消息。 我的客戶的測試人員一直在廣泛使用它,只是對Web服務技術的廣泛理解。 令人印象深刻的工

選項3

Groovy客戶端(其他基於JVM的語言的方法相同)

使用wsdl2java工具為莎士比亞Web服務創建客戶端存根類:

generate.sh

$AXIS2_HOME/bin/wsdl2java.sh -d adb -s -o build -uri http://www.xmlme.com/WSShakespeare.asmx?WSDL
ant -file build/build.xml 

GetSpeech.groovy

// Dependencies
// ============
import com.xmlme.webservices.ShakespeareStub

@Grapes([
    @Grab(group='org.apache.axis2', module='axis2-kernel', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-adb', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-transport-local', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-transport-http', version='1.5.1'),
    @Grab(group='xerces', module='xercesImpl', version='2.6.2'),
    @GrabConfig(systemClassLoader=true)
])

// Main program
// ============
def stub = new ShakespeareStub()

// Request payload
def request = new ShakespeareStub.GetSpeech()
request.setRequest("Friends, romans, countrymen")

// Send request
response = stub.getSpeech(request)

println response.getGetSpeechResult()

使用-cp參數將生成的代碼添加到腳本的類路徑中

groovy -cp build/build/classes GetSpeech

如果您有權訪問WSDL,則可以使用以下代碼/ JAX-WS客戶端來調用任何基於SOAP的Web服務。

import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class WebserviceClient {

    public static void main(String[] args) throws Exception {

        URL url = new URL
                ("http://localhost:9999/ws/additionService?wsdl");

        QName qname = new QName("http://test/", 
                "AdditionServiceImplService");//Line 2

        Service service = Service.create(url, qname);

        AdditionService additionService = service
                .getPort(AdditionService.class);

        System.out.println(additionService.add(1, 2));

    }

}

在第2行中, QName第一個參數是WSDL中使用的命名空間,第二個參數只是服務名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM