LotusNotes:Java在代理上运行良好,但在Java库上运行失败
我创建了一个Web服务消费者。 我想调用名为LotusNotes:Java在代理上运行良好,但在Java库上运行失败,java,lotus-notes,lotusscript,ls2j,Java,Lotus Notes,Lotusscript,Ls2j,我创建了一个Web服务消费者。 我想调用名为setCredentials的方法,以便将身份验证信息传递给服务 我有两个导入web服务使用者的实体,一个代理和一个java库,这意味着要从LotusScript调用 奇怪的是,在我的经纪人身上,一切正常。库编译正常,但当它从LotusScript执行并到达该行时 stub.setCredentials(“xxxx”、“ttttt”) Java抛出一个Java.lang.nosuchmethod错误。我会做错什么 非常感谢您的帮助 更新: 也许我没有充
setCredentials
的方法,以便将身份验证信息传递给服务
我有两个导入web服务使用者的实体,一个代理和一个java库,这意味着要从LotusScript调用
奇怪的是,在我的经纪人身上,一切正常。库编译正常,但当它从LotusScript执行并到达该行时
stub.setCredentials(“xxxx”、“ttttt”)代码>
Java抛出一个Java.lang.nosuchmethod
错误。我会做错什么
非常感谢您的帮助
更新:
也许我没有充分解释。该操作完全发生在java内部。这是一种测试。在LotusScript上,我只是使用序列GetClass/CreateObject调用构造函数。代码在构造函数中(为了测试)。在我的测试代理和java库上,它看起来完全相同。回答您的问题,Jason,不,setCredentials是特定lotus.domino.types.PortTypeBase接口的一部分。当我使用.wsdl创建web服务使用者时,我可以从生成的.java文件中看到,我的接口扩展了portTypeBase和Remote,因此无法从LotusScript(LS2J)调用java web服务使用者。这在SPR中有详细说明。这也适用于调用Java代理,Java代理反过来调用Java消费者
您需要创建一个LotusScript使用者来访问LotusScript中的web服务。然而,LotusScript中存在一些已知的限制,这些限制可以阻止某些web服务被使用
- 40字符变量/方法限制
- 超大的SOAP消息可能会导致性能/崩溃问题李>
- LS/WSDL/SOAP中的保留关键字不匹配李>
也就是说,我创建了以下示例提供程序
Class wsClass
Function hello ( helloText As String) As String
hello = "Hello " + helloText
End Function
End Class
在NSF中,它被存储,我将其设置为只允许经过身份验证的用户
然后,我从生成的WSDL创建了LS使用者和Java使用者库
之后,我创建了以下示例代码
LotusScript
Use "LsWebServiceConsumer"
Sub Initialize
Dim stub As New Wsclass
Dim answer As String
Call stub.Setcredentials("testuser", "password")
answer = stub.Hello("world")
MsgBox answer
End Sub
JAVA(将消费者库添加到代理)
这两种方法对各自的消费者都起到了预期的作用 不可能从LotusScript(LS2J)调用Java Web服务使用者。这在SPR中有详细说明。这也适用于调用Java代理,Java代理反过来调用Java消费者
您需要创建一个LotusScript使用者来访问LotusScript中的web服务。然而,LotusScript中存在一些已知的限制,这些限制可以阻止某些web服务被使用
- 40字符变量/方法限制
- 超大的SOAP消息可能会导致性能/崩溃问题李>
- LS/WSDL/SOAP中的保留关键字不匹配李>
也就是说,我创建了以下示例提供程序
Class wsClass
Function hello ( helloText As String) As String
hello = "Hello " + helloText
End Function
End Class
在NSF中,它被存储,我将其设置为只允许经过身份验证的用户
然后,我从生成的WSDL创建了LS使用者和Java使用者库
之后,我创建了以下示例代码
LotusScript
Use "LsWebServiceConsumer"
Sub Initialize
Dim stub As New Wsclass
Dim answer As String
Call stub.Setcredentials("testuser", "password")
answer = stub.Hello("world")
MsgBox answer
End Sub
JAVA(将消费者库添加到代理)
这两种方法对各自的消费者都起到了预期的作用 setCredentials()是在代码中定义的还是从基类继承的?setCredentials()是在代码中定义的还是从基类继承的?谢谢,Simon,这充分解释了我遇到的许多奇怪错误。看来我现在做的基本上是不可能的。我必须通过一个LotusScript消费者。谢谢。别忘了在回答的问题上做记号。谢谢。谢谢,西蒙,这充分解释了我犯下的许多奇怪的错误。看来我现在做的基本上是不可能的。我必须通过一个LotusScript消费者。谢谢。别忘了在回答的问题上做记号。谢谢