国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
用Axis2開發(fā)Web Service及客戶端
    在《使用Eclipse的Axis1.4插件開發(fā)Web Service及客戶端》介紹的Axis是用的Axis1.x,而Axis2是改進版本,進行了重新的設(shè)計,應(yīng)該是Axis的第二代,本文介紹Axis2的使用方法。
    http://ws.apache.org/axis2/是Axis2的主頁,寫這篇文章的時候最新版本是1.5,從http://ws.apache.org/axis2/download/1_5/download.cgi下載axis2-1.5-bin.zip、axis2-1.5-war.zip。
    axis2-1.5-war.zip是web發(fā)布版本,可以在網(wǎng)頁上進行Web Service的動態(tài)部署,提供Web Service服務(wù)。解壓縮后把axis2.war放到tomcat的webapps下面,啟動tomcat,在網(wǎng)頁中輸入http://localhost:8080/axis2(取決于tomcat的設(shè)置)就可以進行操作了。這方面的資料很多,就不詳細介紹了。
    下面介紹使用Eclipse插件開發(fā)的方法,環(huán)境與《使用Eclipse的Axis1.4插件開發(fā)Web Service及客戶端》的相同。
    啟動Eclipse后,首先設(shè)置Axis2的主目錄,需要先解壓縮axis2-1.5-bin.zip,然后把解壓縮之后的路徑填入Eclipse的Window|Preferences|Web Services|Axis2 Preferences的界面上,如下圖所示:
圖1在Eclipse中設(shè)置Axis2的runtime
    建立一個簡單的類:
package demo.axis;

public class User
{
    public String sayHello(String userName)
    {
        return "hello " + userName;
    }
}
    把這個類發(fā)布為Web Service的步驟與《使用Eclipse的Axis1.4插件開發(fā)Web Service及客戶端》中的相同,只是要注意選擇Axis2,生成之后的目錄結(jié)構(gòu)是:
圖2生成Web Service后的目錄結(jié)構(gòu)
    但生成之后的項目中缺少.jar文件,可以把%AXIS2-HOME%/lib下的所有文件復(fù)制到項目的WEB-INF/lib下面,部署到tomcat就可以運行了,在瀏覽器中輸入http://localhost:8080/Axis2ServerDemo/services/User?wsdl就可以看到發(fā)布的Web Service的wsdl了。
    除了利用Eclipse插件生成Web Service之外,自己動手部署也不困難。建立一個目錄,把需要部署為Web Service的class文件放到一個目錄下面,并建立一個META-INF目錄,把services.xml放入META-INF下。目錄結(jié)構(gòu)如下:
圖3Axis2 aar目錄結(jié)構(gòu)
    用jar命令把以上內(nèi)容打包為一個aar文件,命令為“jar cvf User.aar *.*”。這樣就會生成一個User.aar文件,放到應(yīng)用的WEB-INF/services下面,也就部署了Web Service。
    其中services.xml的內(nèi)容可以是:
<service name="User" >
  <Description>
    Please Type your service description here
  </Description>
  <messageReceivers>
    <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
  </messageReceivers>
  <parameter name="ServiceClass" locked="false">demo.axis2.User</parameter>
</service>
    這樣類中所有public方法都發(fā)布為Web Service,如果只想發(fā)布類的某些方法,services.xml可以這樣寫:
<service name="User" >
  <Description>
    Please Type your service description here
  </Description>
  <parameter name="ServiceClass" locked="false">demo.axis2.User</parameter>
  <operation name="sayHello">
    <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
  </operation>
</service>
    客戶端的編寫可以直接寫代碼,也可以用Axis2提供的命令wsdl2java生成客戶端的代碼。
    直接寫代碼的方式,示例代碼如下:
package demo.axis2.client;

import javax.xml.namespace.QName;

import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class UserClient
{
    public static void main(String[] args) throws Exception
    {
        // 使用RPC方式調(diào)用WebService        
        RPCServiceClient serviceClient = new RPCServiceClient();
        Options options = serviceClient.getOptions();
        // 指定調(diào)用WebService的URL
        EndpointReference targetEPR = new EndpointReference(
                "http://localhost:8080/Axis2ServerDemo/services/User");
        options.setTo(targetEPR);
        // 指定方法的參數(shù)值
        Object[] opAddEntryArgs = new Object[] {"tom"};
        // 指定方法返回值的數(shù)據(jù)類型的Class對象
        Class[] classes = new Class[] {String.class};
        // 指定要調(diào)用的getGreeting方法及WSDL文件的命名空間
        QName opAddEntry = new QName("http://axis2.demo", "sayHello");
        // 調(diào)用方法并輸出該方法的返回值
        System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);
    }
}
    用wsdl2java命令的方式,首先要生成代碼,命令如下:
set AXIS2_HOME=E:/Program/WebService/axis2-1.5
%AXIS2_HOME%/bin/wsdl2java -uri http://localhost:8080/Axis2ServerDemo/services/User?wsdl -p client -s -o stub
    生成客戶端訪問代碼后,調(diào)用方法如下:
package demo.axis2.client;

import client.UserStub;

public class Stub
{
    public static void main(String[] args) throws Exception
    {
        UserStub stub = new UserStub();
        UserStub.SayHello sayHello = new UserStub.SayHello();
        sayHello.setUserName("tom");
        System.out.println(stub.sayHello(sayHello).get_return());
    }
}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Axis2創(chuàng)建WebService實例
Axis2 WebService(配置、發(fā)布、調(diào)用) | Java |Life吧
web service 開發(fā)實戰(zhàn)(dii,proxy,stub)
用Axis 1.1 for Java進行Web Services開發(fā)(1)
3步把您的java程序轉(zhuǎn)換為webservice
使用Axis開發(fā)Web Service程序
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服