1

我们在应用程序中大量使用 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) <<<<=====ERROR ON THIS LINE End Function

我认为这是 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 库中的数据检索变得更加复杂。

任何意见\建议都会张开双臂欢迎!

问候

缺口

4

1 回答 1

3

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

于 2012-10-25T09:35:43.910 回答