【问题标题】:Webservice client in xPages doesn't workxPages 中的 Web 服务客户端不起作用
【发布时间】:2013-11-05 05:54:33
【问题描述】:

我需要在 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. 然后我创建了一个简单的类来测试它:

CurrencyConvertor 服务 = new CurrencyConvertor();

CurrencyConvertorSoap msg = service.getCurrencyConvertorSoap();

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

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

效果很好。

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

  1. 首先,我创建了一个新的 Domino 应用程序
  2. 然后我确保它使用 Java 1.6
  3. 然后我在 Package Explorer 中创建了一个名为 src 的新文件夹并将其添加到 Build Path
  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 服务器上创建了一个典型项目。有人可以检查并尝试一下吗?也许我只是做错了什么。 Here 是测试应用程序。

【问题讨论】:

    标签: xpages lotus-domino


    【解决方案1】:

    我建议您先尝试不使用托管 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 是我的一些经验。

    【讨论】:

    • Paul Calhoun 的评论很有意思。
    • 使用 Apache Axis 是一种方法,但 wsimport 是 JAX-WS 的东西,就像 CXF wsdl2java。 Axis 真的很老了,我更喜欢使用 Java 自带的 JAX-WS。
    • 但我仍然看不到问题出在哪里。我使用 JAX-WS 和所有原生 java 的东西。
    • 我尝试调用该 bean 而不将其用作托管 bean。我创建了一个按钮,调用: var bean = new beans.ServiceBean(); getComponent("curr").setValue(bean.getCurrency());但是没有成功。
    • 原因可能是Java版本略有不同(更新了我的答案)。
    【解决方案2】:

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

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

    【讨论】:

    • 这是 Domino 8.5.3。
    • 你好,保罗,不应该在回答中提出澄清请求。我删除了这个问题,因为理论上这可能是一个答案。
    猜你喜欢
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 2018-01-01
    • 2013-06-29
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    相关资源
    最近更新 更多