在Domino XPage中调用Web服务使用者来填充字段

时间:2013-09-25 12:25:23

标签: java web-services xpages lotus-domino lotus

我在domino designer 8.5.3中创建了一个java web服务使用者,它使用字符串参数调用WS操作并获得字符串响应。

现在我要创建一个包含1个编辑框,1个计算字段和1个按钮的XPage。在按钮上单击我想运行使用我的WS消费者的服务器端javascript(从框中获取输入并在计算字段中显示响应)。

首先,是否可以通过XPage调用WS?有没有经过测试的解决方案?

我试过了:

  1. http://www-10.lotus.com/ldd/ddwiki.nsf/dx/reuse_web_services_xpage.htm我得到了: - >在NSF找不到类org.apache.commons.discovery.tools.DiscoverSingleton

  2. 我将java的消费者源码复制到Java代码文件夹中。然后我创建了自己的类来执行调用,而从SSJS我调用了我的类'方法。我得到了: - > lotus.domino.axis.ConfigurationException:没有引擎配置文件 - 正在中止!

  3. http://openntf.org/XSnippets.nsf/snippet.xsp?id=call-webservice-from-java-ssjs-xpages我得到了: - >在控制台中打印空输出变量

  4. P.S:我能够使用Java代理调用并获得结果,我还能够创建一个Notes表单并使用lotusscript使用者填充计算字段。

    我现在想要的是:使用XPage中的java使用者从WS中设置字段值。

2 个答案:

答案 0 :(得分:2)

Mike X,

遗憾的是,您不能直接在XPage中使用生成的Web服务使用者(类代理和Java路径对于Java代理和XPage是不同的 - 但您已经想到了这一点)。你有两种可能性:

  • 从XPage中调用代理并移交内存中文档以传输结果
  • 使用CXF将您的使用者重建为Java类/ bean(请参阅this instructions

调用代理程序会在运行时带来性能损失以启动代理程序运行时。让我们知道它是怎么回事

答案 1 :(得分:1)

发现解决方案!!!

(打开包浏览器视图和应用程序视图) 1:创建一个java消费者 2:在code / java文件夹中创建包,并将它们命名为使用者生成的 3:将java文件导出或复制到code / Java文件夹(进入正确的包)

到目前为止它不起作用,你会得到轴配置的错误,但执行以下操作才能使其工作:

4:转到package explorer,打开使用者(.javalib)编译它,同时仍然打开右键单击它并用系统编辑器打开。将弹出一个包含一些jar文件的窗口。用(我使用winrar)打开这个“webserviceresource.jar” 5:复制.wsdd文件(或者你想要的所有文件......),将它们粘贴到代码/ java中(没有新的包新文件夹等,只需粘贴它们)

6:在javascript编辑器中使用importPackage导入这些java包,然后编写代码

ws客户端现已准备就绪。您可以将它与xpage一起使用。