xPages中的Webservice客户端不起作用

时间:2013-11-03 17:19:40

标签: xpages lotus-domino

我需要在xPages中使用webservice客户端。

我发现了一个简单的ws来测试,称为CurrencyConverter。 WSDL在这里:http://www.webservicex.net/CurrencyConvertor.asmx?WSDL

  1. 首先,我在JDK6中使用wsimport工具创建了一个java类。
  2. 我确保我的项目使用Java 1.6
  3. 然后我在Eclipse Juno中创建了一个新的java项目,并将这些文件导入src文件夹
  4. 然后我创建了一个简单的类来测试它:
  5.   

    CurrencyConvertor service = new CurrencyConvertor();

         

    CurrencyConvertorSoap msg = service.getCurrencyConvertorSoap();

         

    double rate = msg.conversionRate(Currency.USD,Currency.CZK);

         

    System.out.println(“USD to CZK rate =”+ rate);

    效果很好。

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

    1. 首先,我创建了一个新的Domino Application
    2. 然后我确保它使用Java 1.6
    3. 然后在Package Explorer中我创建了一个名为src的新文件夹并将其添加到Build Path
    4. 然后我将那些由wsimport工具制作的java文件导入到这个文件夹中
    5. 然后我创建了一个名为TestBean的新类,并在其中创建了一个新方法getCurrency(),其代码与上面相同
    6. 然后我使用视图范围
    7. 在faces-config.xml中将此TestBean注册为“service”
    8. 然后我创建了一个名为home
    9. 的新xPage
    10. 然后我将一个新的ComputedField放入这个xpage:
    11.   

      值= “#{service.currency}”

      你知道吗?它不起作用。它抛出一个带有消息的WebServiceException:class net.webservicex.ConversionRate没有名称为{http://www.webserviceX.NET/} FromCurrency

      的属性

      那么,我做错了什么,还是只是典型的IBM Notes / Domino问题?

      编辑:我在Domino 9服务器上创建了一个典型的项目。有人可以检查并尝试一下吗?也许我只是做错了什么。 Here是测试应用程序。

2 个答案:

答案 0 :(得分:2)

版本9.0.1已将Apache Axis jar添加回类路径,因此可以使用SSJS创建WS客户端。

要通过java执行此操作,您必须将apache轴jar添加到系统/应用程序类路径,然后从库中调用代码。

答案 1 :(得分:2)

我建议你首先尝试没有托管bean。

Eclipse使用的Java版本可能与Domino java版本不同。 Domino Java版本中可能存在错误(版本已在9.0.1中更新),或者您可能需要为该版本使用不同的wsimport选项(如-p)。

另一种对我有用的方法是使用Apache CXF wsdl2java 。我从Domino 8.5.3开始使用它。我从生成的代码中创建了一个JAR,并从Code / Java-elements中的Java代码调用它。

Here是我的一些经验。