2013-10-17 72 views
0

我面臨從獨立java應用程序調用cxf webservices方法的問題,並希望將pojo類對象參數傳遞給該方法。如何從獨立應用程序調用webservices方法

+2

所以我想你打電話給你的web服務和HTTP請求。您可以嘗試通過序列化將對象作爲數據發送。以任何你想要的格式(JSON,XML等),然後在你的web服務中將其反序列化。 – Okazari

+0

@John我認爲向專家尋求一些有用的建議並不壞,這是我工作的一部分,所以我會更新。不要介意你不應該使用這種類型的單詞。 –

+0

咦?我說了什麼?我是否說過:請不要只是要求我們爲您解決問題。告訴我們你是如何試圖自己解決問題的,然後向我們展示結果是什麼,並告訴我們爲什麼你覺得它不起作用。請參閱「[您嘗試過什麼?](http://whathaveyoutried.com/)」,以獲得一篇您最近需要閱讀的優秀文章。 –

回答

0

好吧夥計們。最後我解決了這個問題。我已經使用以下步驟爲cxf webservices創建獨立的java客戶端。

步驟1:

創建Java項目和POJO類相同的名稱存在於web服務(你想傳遞給調用的web服務方法,其對象).EX

public class Client{ 
private String name; 

// getter and setter 
} 

步驟2:創建服務端具有點接口相同的名稱()

import javax.jws.WebService; 

@WebService 
public interface CheckWebservice { 
public boolean isWebservice(Client client); 
} 

步驟3:現在,我們將使用彈簧的ApplicationContext所以創建一個應用程序的beans.xml文件和PU調用web服務方法噸項目目錄(項目的任何文件夾)

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:jaxws="http://cxf.apache.org/jaxws" 
xsi:schemaLocation=" 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd 
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> 
<jaxws:client id="decisionBean" serviceClass="com.cxf.client.CheckWebservice" 
    address="http://localhost:8080/CXF-WEBSERVICES/services/CheckDecisionImplPort" /> 

第4步:使用下面的代碼來調用Web服務的服務器上運行。

try{ 
    ApplicationContext context = new ClassPathXmlApplicationContext("demo/xml/application-beans.xml"); 
    CheckWebservice checkDecision = (CheckWebservice) context.getBean("decisionBean"); 

    // Populate the Order bean 
    Client decision = new Client(); 
    decision.setDecision("Decision test"); 
    boolean checkDcn = checkDecision.isWebservice(decision); 
    System.out.println("Decision recived : "+checkDcn); 
}catch(Exception e){ 
e.printStackTrace(); 
} 

注意:請使用apache-cxf-2.7.7庫中的庫,它會有所幫助。

0

Apache CXF提供了幾種客戶端實現。你可以使用其中之一。或者,如果它是基於REST的,基於JSON的服務,則可以使用許多現有客戶端中的任何一個,甚至可以使用GSON和Apache HttpComponents等自己的產品。如果它是SOAP,那就更加複雜了。

+0

是的Mikkel是這個問題:( –

+0

不是。它只需要更多的工作來設置:http://cxf.apache.org/docs/dynamic-clients.html –

+0

我想如果你想打電話它來自不是Java的東西,這個答案不是特別有用。:( –