Lotus Notes:エージェント上にあるときはjavaがFineを実行しますが、Java libのときに失敗します。

StackOverflow https://stackoverflow.com//questions/22051912

質問

私はWebサービスコンシューマを作成しました。 setCredentialsという名前のメソッドを呼び出して、認証情報をサービスに渡すことができます。

LotusScriptから呼び出されることを意味するWebサービスコンシューマ、エージェント、およびJavaライブラリをインポートする2つのエンティティがあります。

奇妙なことは私の代理人にすべてがうまくいくということです。ライブラリはOKをコンパイルしますが、LotusScriptから実行されてその行に達すると stub.setCredentials("xxxx","ttttt"); Javaはjava.lang.nosuchmethodエラーをスローします。何が悪いことができますか?

あなたの助けのためにあってくれてありがとう。

更新:

多分私は完全に説明しなかった。アクションはJava内部に完全に発生します。これはテストの種類です。 LotusScriptでは、シーケンスgetClass / createObjectを指定してコンストラクタを呼び出すだけです。コードはコンストラクタの内側にあります(テストのために)。そしてそれは私のテストエージェントとJavaライブラリの両方で同じで同じように見えます。あなたの質問に答える、Jason、No、SetCredentialsは特定のlotus.domino.types.portTypeBaseインターフェースの一部です。 Webサービスコンシューマを作成するために.wsdlを消費するとき、私のインタフェースはPortTypeBaseとRemote

を拡張する生成された.javaファイルから参照できます。

役に立ちましたか?

解決

LotusScript(LS2J)からJava Webサービスコンシューマを呼び出すことはできません。これは、spr sody7udke8 / apar lo42772 。これは、Javaエージェントを呼び出すことにも適用されます。これは、Java Consumerを呼び出す。

LotusScriptでWebサービスにアクセスするためにLotusScriptコンシューマを作成する必要があります。ただし、LotusScriptには、Webサービスが消費されないようにすることができるLotusScriptには既知の制限があります。

  • 40文字変数/メソッドlimit
  • 非常に大きな石鹸メッセージは、パフォーマンス/クラッシュの問題を引き起こす可能性があります。
  • LS / WSDL / SOAPのrequervedキーワードの不一致。

は、次のサンプルプロバイダを作成しました。

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 (エージェントへの消費者ライブラリを追加)

import lotus.domino.*;

public class JavaAgent extends AgentBase {

    public void NotesMain() {
      try {

          WsClass stub = new WsClassServiceLocator().getDomino();
          stub.setCredentials("testuser", "password");
          System.out.println(stub.HELLO("world"));

      } catch(Exception e) {
          e.printStackTrace();
       }
   }
}
.

これらの両方がそれぞれ独自の消費者で予想通りに働いた。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top