2013-11-03 50 views
0

我需要在xPages中使用webservice客戶端。xPages中的Webservice客戶端無法正常工作

我找到了一個簡單的ws來測試,叫做CurrencyConverter。 WSDL在這裏:http://www.webservicex.net/CurrencyConvertor.asmx?WSDL

  1. 首先,我在JDK6中使用wsimport工具創建了一個java類。
  2. 我確信,我的項目使用Java 1.6
  3. 然後,我創造了我的Eclipse朱諾一個新的Java項目,並導入這些文件到src文件夾
  4. 然後我創建了一個簡單的類來測試它:

CurrencyConvertor service = new CurrencyConvertor();

CurrencyConvertorSoap msg = service.getCurrencyConvertorSoap();

double rate = msg.conversionRate(Currency.USD,Currency.CZK); (「美元兌捷克克朗匯率=」+匯率);

它工作完美。

然後我想在xPages中使用相同的方法。

  1. 首先,我創建了一個新的Domino應用程序
  2. 然後,我確信,它使用Java 1.6
  3. 然後在Package Explorer中,我創建一個新的文件夾名爲src並將其添加到構建路徑
  4. 然後我進口那些java文件,通過wsimport工具製成該文件夾
  5. 然後創建了一個稱爲testBean這個新的類,並在其中創建了一個新方法getCurrency()具有相同的代碼如上
  6. 然後我註冊這個TestBea n的faces-config.xml中的使用視圖範圍
  7. 然後 '服務' 我創建了一個叫做家新的XPage
  8. 然後,我把一個新的ComputedField到此的XPage:

值=」 #{service.currency}「

你知道嗎?它不起作用。它拋出一個WebServiceException消息:class net.webservicex.ConversionRate沒有名稱屬性FromCurrency

所以,我做了什麼錯誤,還是隻是典型的IBM Notes/Domino問題?

編輯:我在Domino 9服務器上創建了一個典型的項目。有人可以檢查並嘗試嗎?也許我只是在做錯事。 Here是測試應用程序。

回答

2

版本9.0.1已將Apache Axis jar添加回類路徑中,因此可以使用SSJS創建WS客戶端。

要通過java來做到這一點,你必須將apache axis jars添加到系統/應用程序類路徑,然後調用庫中的代碼。

+0

這是Domino 8.5.3。 – JiKra

+0

你好保羅,請求澄清不應該在答案中完成。我刪除了這個問題,因爲理論上這可能是一個答案。 – jmort253

2

我建議你先嚐試不使用託管bean。

Eclipse使用的Java版本可能與Domino Java版本不同。 Domino Java版本中可能存在錯誤(版本已在9.0.1中更新),或者您可能需要該版本的不同wsimport選項(如-p)。

對我而言,另一種方法是使用Apache CXF wsdl2java。我從Domino 8.5.3開始使用它。我從生成的代碼中創建了一個JAR,並從代碼/ Java元素中的Java代碼中調用它。

Here是我的一些經驗。

+0

Paul Calhoun的評論真的很有趣。 – JiKra

+0

使用Apache Axis是一種方法,但wsimport就像CXF wsdl2java一樣是JAX-WS的東西。 Axis非常古老,我更喜歡使用Java附帶的JAX-WS。 –

+0

但我仍然無法看到問題出在哪裏。我使用JAX-WS和所有原生的java東西。 – JiKra

相關問題