【问题标题】:Consuming web service using wsdl in Domino在 Domino 中使用 wsdl 使用 Web 服务
【发布时间】:2012-10-25 09:17:11
【问题描述】:

我们在应用程序中大量使用 Web 服务 Consumers\Providors,包括 LS 和 java 设计元素。

我有一个 Web 服务 (wcf) wsdl,我试图将它导入到 LotusScript Web Consumer 设计元素中,保存时出现以下错误:

不是会员:INVOKE

...在线如下所示。

Function GetCopyDestinations(service As XSD_STRING, ocsCode As XSD_STRING, Fault1 As InteropErrorInfoStruct_n1) As ArrayOfInteropMessageDestination_n1 Set GetCopyDestinations = Service.Invoke("GetCopyDestinations", service, ocsCode, Fault1)

我认为这是 wsdl --> Web 服务类转换器不喜欢 wsdl 的结构...?我与创建我们正在使用的服务的开发人员一起工作,因此我可以更改结构,但是,由于上面的错误,我不确定从哪里开始。我认为这意味着它认为对象服务没有方法 .Invoke()。

我查看了文件:lsxsd.lss,其中包括 LS Web 服务元素。 LS Web 服务中的“存根”类继承自 lsxsd.lss 文件中的 PortTypeBase,PortTypeBase 没有 invoke() 方法,所以我不太确定该方法是从哪里继承的。我们成功使用的其他 LS Web 服务具有完全相同的结构,因此看起来这是正确的。

我唯一能想到的就是让我的同事将 wsdl 剥离成裸露的骨头,然后添加 1 个方法,看看它是否导入,添加另一个,看看它是否导入,等等。

附带说明,我尝试将 ws 导入 java 使用者,它可以正常导入。然后,我以与我为所有其他 java 消费者服务完全相同的方式构建存根,它似乎成功地完成了。当我运行我的测试工具代理时,会创建存根,但在尝试运行任何操作时会出错:

java.rmi.RemoteException: 找不到服务的操作描述

我的意思是,它在 wsdl 文件中找不到操作,或者类似的东西......?如果我在运行时输出,端点 url 和 PortName 显示正确。

作为附带说明...我在上面尝试使用的服务,我们现在有一个正在生产中的版本,它在 LS 网络消费者中,但新版本已经添加了新操作。为了进行完整性检查,然后我将“实时” wsdl ...我们知道可以工作...导入到 LS 网络消费者设计元素并运行测试工具代理,按预期工作...很好。然后我将“live”wsdl 导入到 java 消费者设计元素中。运行服务时,我们得到同样的错误...!?

java.rmi.RemoteException: 找不到服务的操作描述

所以现在我真的,真的很困惑。我想在这里发布 wsdl,但我认为 NDA 等不允许我,但如果有任何帮助,我将按如下方式构建存根:

ITKInteropV10Stub 存根 = (ITKInteropV10Stub) new ITKInteropServiceV10_ServiceLocator().getITKInteropV10();

这是一个与我使用的所有其他 java web 服务类似的存根构造函数模式。

我已经在谷歌上搜索了几天,搜索上面列出的错误,我真的很难找到前进的道路。

理想情况下,解决 LS Web 消费者中的导入问题效果最好,因为后端逻辑当前位于将访问此服务的 LS 脚本库中。如果我让它在 java 中工作,那也很好,它只会使从 Web 服务中检索数据到 LS 库中变得更加复杂。

我们会张开双臂欢迎任何 cmets\ 建议!

问候

尼克

【问题讨论】:

  • 我在 LDD 上为您回答了这个问题,但不妨尝试在这里获得一些分数。 :) 如果它解决了问题,请告诉我。
  • 太好了,关于其他问题,我建议使用 SOAPUI 或类似应用程序进行测试。如果您之前没有使用过它,这里有一个教程。 www-10.lotus.com/ldd/ddwiki.nsf/dx/….

标签: lotus-domino


【解决方案1】:

LotusScript 不区分大小写。您有一个名为“服务”的 XSD_STRING 变量和另一个名为“服务”的对象,看起来它可能是一个 NotesWebServiceEngine 对象? (内部 LS 对象)。

【讨论】:

  • 谢谢西蒙,你确实是对的。给那个人一杯啤酒!他们最终更改了变量名,所有这些都在 LotusScript Web 服务设计元素中排序。我仍然无法让它在 java 中工作,同样的错误,虽然我不需要使用 java 版本,但为什么我不能让它工作真的很困扰我:java.rmi.RemoteException:没有操作描述为服务找到了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多