我们在应用程序中大量使用 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 库中的数据检索变得更加复杂。
任何意见\建议都会张开双臂欢迎!
问候
缺口