[英]What is the best way to write a java client for a web service?
我有一個項目即將要求我從我的java應用程序調用SOAP Web服務。 我想知道我應該看哪些工具集來做到這一點? 所有建議都贊賞。
我看過jax-ws和Axis2,但這些似乎主要是針對Web服務的創建者而不是消費者,我只想消費。
謝謝!
首先,你需要wsdl 。 一些服務提供者可能會分發Java客戶端類,但WSDL是最安全的方法。
一旦你擁有它,運行像wsdl2java
這樣的工具用於apache-cxf或類似於 apache-axis的工具 。 它將創建一堆Java類(您只需要客戶端)。 這些工具還能夠生成服務器端代碼,因此您對服務開發人員的目標很明顯。
這就是您所需要的 - 客戶端類將為您處理XML編組/解組和HTTP連接。 只需使用適當的存根實現WS端點接口。
您還可以使用spring-ws產品組合中的WebServiceTemplate
。
Jax-WS附帶了一個名為wsimport
的工具,您可以針對SOAP服務的.wsdl運行該工具。 它會生成一大堆類,客戶端可以使用這些類與服務進行交互。 之后,它只是簡單的Java編碼。
如果您正在使用eclipse,您可能希望查看此解決方案:
如果需要快速功能的客戶端,可以使用JAX-WS工具生成使用Web Service所需的代碼。 但有時這種方法可以生成不可移植的代碼(就像使用Websphere工具一樣)但是生產力的提高可能值得。
Spring Framework還提供了構建和使用Web服務的工具,但它需要一些額外的工作來開發客戶端,並且可能需要使用JAXB或Castor等技術手動映射輸入/輸出消息。 您也可以使用Spring直接讀取XML,它是一個靈活的框架,可以確保容器之間的可移植性,但需要額外的工作和時間。
每種方法都有利有弊。 由你來決定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.