簡體   English   中英

簡單的Java Web服務

[英]Simple Java web services

有誰知道將Java方法作為Web服務發布的一種非常簡單的方法? 我真的不想要使用Tomcat或Jetty或任何其他容器框架的開銷。

場景:我在服務類型應用程序中有一組Java方法,我想從本地LAN上的其他機器訪問。

好吧,Tomcat或Jetty可能因為發布一些Web方法的方法而過度。 但另一方面它不太復雜,他們做的工作,所以為什么不呢?

不久前我遇到過類似的問題,並將Tomcat與Axis2一起使用。 只需下載Tomcat,解壓縮,部署Axis2 WAR。 要發布一個Web服務,有幾個方法,我采取的可能是最容易的一個:

只需像往常一樣構建應用程序,並使用javax.jws。*中的相應注釋來注釋Web服務類和方法。 把所有東西都裝進罐子里。 在jar文件的META-INF目錄中創建一個service.xml並將其放入其中:

<service name="name of the service" scope="<one of request, session or application>">
    <description>
    optional description of your service
    </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">put here the fully qualified name of your service class (e.g. x.y.z.FooService)</parameter>

</service>

將.jar重命名為.aar並將其放入/ webapps / axis2 / WEB-INF / services /目錄。 啟動tomcat,將部署該服務。 您可以通過訪問axis2頁面( http:// localhost:8080 / axis2 / )來檢查它是否正在運行。 在那里,您將看到部署了哪些服務以及導出了哪些方法。 您還可以在那里獲取WSDL URL以連接到您的服務。

有關使用Axis2的更多信息,請閱讀http://ws.apache.org/axis2/1_4_1/contents.html 我在這里描述的方法在文檔中找不到這樣的方法,但它的效果非常好。

更新:如果您只想提供Web服務並且實際上不需要Tomcat的任何其他功能(例如,提供普通舊網頁,jsps或其他內容),您還可以使用Axis2獨立服務器。 但除了設置部分,它不會改變我描述的任何內容。

我已經寫了一個稍微詳細的版本,可以在http://www.slashslash.de/lang/en/2008/10/java-webservices-mit-apache-tomcat-und-axis2/找到 (不要讓URL中的德語激怒你,它是用英文寫的)

Web服務依賴於HTTP。 您可能不需要tomcat或Jetty。 在這種情況下,您必須自己實現HTTP。

Erhm。 為什么不直接使用RMI

Jetty非常輕巧。 否則,我認為XML-RPC是你唯一明智的選擇。

比Simon所描述的更簡單的解決方案是使用alrady這樣做的工具。 如果您使用eclipse,可以使用http://ws.apache.org/axis2/tools/1_2/eclipse/servicearchiver-plugin.html

生成aar文件。

暫無
暫無

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

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