0

我需要在 xPages 中使用 web 服务客户端。

我找到了一个简单的 ws 来测试,叫做 CurrencyConverter。WSDL 在这里:http ://www.webservicex.net/CurrencyConvertor.asmx?WSDL

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

CurrencyConvertor 服务 = new CurrencyConvertor();

CurrencyConvertorSoap msg = service.getCurrencyConvertorSoap();

双倍汇率 = msg.conversionRate(Currency.USD, Currency.CZK);

System.out.println("美元兑捷克克朗汇率 = " + 汇率);

它工作得很好。

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

  1. 首先,我创建了一个新的 Domino 应用程序
  2. 然后我确保它使用 Java 1.6
  3. 然后在包资源管理器中,我创建了一个名为 src 的新文件夹并将其添加到构建路径
  4. 然后我将那些由wsimport工具制作的java文件导入到这个文件夹中
  5. 然后我创建了一个名为 TestBean 的新类,并在其中创建了一个新方法 getCurrency() ,其代码与上面相同
  6. 然后我使用视图范围在 faces-config.xml 中将此 TestBean 注册为“服务”
  7. 然后我创建了一个名为 home 的新 xPage
  8. 然后我把一个新的 ComputedField 放到这个 xpage 中:

value="#{service.currency}"

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

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

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

4

2 回答 2

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 代码中调用它。

以下是我对此的一些经验。

于 2013-11-03T20:41:40.293 回答
2

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

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

于 2013-11-03T18:47:44.780 回答