O Lotus Notes:Java é Executado correctamente quando o Agente, mas falha quando em uma lib em java

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

Pergunta

Eu criei um Consumidor de Serviço da Web.Eu quero chamar um método que é chamado de setCredentials então, eu posso passar minhas informações de autenticação para o serviço.

Eu tenho duas entidades que importar o consumidor de serviço da web, um agente e uma biblioteca java, concebido para ser chamado a partir de LotusScript.

O estranho é que no meu agente tudo funciona bem.Biblioteca compila OK, mas quando é executada a partir do LotusScript e atinge a linha de stub.setCredentials("xxxx","ttttt"); Java lança um java.lang.nosuchmethod erro.O que posso estar fazendo de errado?

Muito obrigado antecipadamente por sua ajuda.

Atualização:

Talvez eu não explicar totalmente.A ação ocorre totalmente dentro do java.Isso é meio que um teste.No LotusScript, eu estou apenas chamando o construtor com a sequência de GetClass/CreateObject.O código está dentro do construtor (Para teste de causa).E parece ser exatamente a mesma, tanto na minha prova de agente e na biblioteca de java.Respondendo sua pergunta, Jason, não , setCredentials é parte de uma certa lotus.domino.tipos.PortTypeBase Interface.Quando eu consumir .o wsdl para criar um serviço da web do consumidor, eu posso ver as geradas .arquivos java que minha interface estende portTypeBase e Remoto

Foi útil?

Solução

Não é possível chamar um Java consumidor de Serviço da Web a partir de LotusScript (LS2J).Isso é detalhado em SPR SODY7UDKE8 / APAR LO42772.Isto também aplica-se a chamar um de Java agente que por sua vez chama o Java consumidor.

Você vai precisar para criar um LotusScript consumidor para acessar o serviço da web em LotusScript.No entanto, existem limitações conhecidas no LotusScript, o que pode impedir que alguns serviços da web que está sendo consumida.

  • 40 carácter variável, método, limite de
  • Extremamente grande de mensagens SOAP podem causar desempenho/problemas de falha.
  • Palavras-chave reservadas incompatibilidade em LS/WSDL/SOAP.

Que disse eu criei o seguinte exemplo de Provedor.

Class wsClass 
    Function hello ( helloText As String) As String
        hello = "Hello " + helloText
    End Function
End Class

No NSF foi armazenado eu configurá-lo para permitir que apenas usuários autenticados.

Eu, então, criado um LS consumidor e Java Consumidor bibliotecas a partir do WSDL gerado.

Depois que eu criei o seguinte código de exemplo.

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 (adicionado consumidor biblioteca para agente)

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();
       }
   }
}

Ambos estes funcionou conforme o esperado com as suas próprias do consumidor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top