[英]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.