我想为我的所有网络服务创建一个日志。我有java登录,它可以工作。我想在 Lotus Domino 中使用我对 LS2J 类做的 java 类做同样的事情。
它可以编译我的 java 类和 ls2j 代码。当我尝试在 Lotus 中调用这个 java 时,它可以工作!但是当我用getter在java中调用它时我有一个空值!
Class GetAllDocuments
Private logDTO As LogWSDTO
Private objectJavaA As JAVAOBJECT
Private a As LogWebService
Private db As NotesDatabase
Public Sub New()
Set logDTO = New LogWSDTO()
Set a = New LogWebService()
Set objectJavaA = a.getJavaObject
End Sub
Public Function GetAllDocuments()
call logDTO.setNomBaseNotesWS(db.FileName)
objectJavaA.setLog(logDTO.getJavaObject())
End Function
我在 lotus 中有一个类,它叫我的 java 类:
UseLSX "*javacon"
Class LogWSDTO
sessionJava As JAVASESSION
classJava As JAVACLASS
objectJava As JAVAOBJECT
methodJava As JAVAMETHOD
Public Sub New()
Set sessionJava = New JAVASESSION
Set classJava = sessionJava.GetClass("com.pasquier.DTO.WS/LogWSDTO")
Set objectJava = classJava.CreateObject
End Sub
Public Function getNomBaseNotesWS()
Set methodJava = classJava.GetMethod("getNomBaseNotesWS","()Ljava/lang/String;")
getNomBaseNotesWS = objectJava.getNomBaseNotesWS()
End Function
Public Sub setNomBaseNotesWS(nomBaseNotesWS As String)
Set methodJava = classJava.GetMethod("setNomBaseNotesWS","(Ljava/lang/String;)V")
objectJava.setNomBaseNotesWS(nomBaseNotesWS)
End Sub
在 java 中:我不能有一个会话,这总是空的
public void setLog(LogWSDTO log) {
System.out.println("entrée java");
System.out.println(log.getNomBaseNotesWS()); <== I Have the data !!
this.logDTO = log;
if (session == null)
{
System.out.println("alert !");
session = session.getSession(); <== it doesn't compil i pass it in comment to test
System.out.println("alert !");
}
System.out.println("Session :" + session );
}
结果是:
“entrée java”
“GetAllDocuments”
“警告!”
“警报!”
会话:“空
更新 2:
我修改了我的代码,我将会话 LotusScript 的令牌与代理一起放入 myLogBean。在java中,我尝试创建一个新会话:
public void setLog(LogWSDTO log) {
this.logDTO = log;
String sessionParam = logDTO.getSessionParam();
if (session == null)
{
try {
session = lotus.domino.NotesFactory.createSession("myhost",sessionParam);
} catch (NotesException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
}
System.out.println("alert !");
}
System.out.println("Session :" + session );
}
结果是:
NotesException:无法从 Domino 服务器获取 IOR:
http://myhost/diiop_ior.txt
在 lotus.domino.NotesFactory.requestIORPlain(Unknown Source) at lotus.domino.NotesFactory.requestIORUsingArgs(Unknown Source) at lotus.domino.NotesFactory.getIOR(Unknown Source) at lotus.domino.NotesFactory.createSessionC(Unknown Source) at lotus .domino.NotesFactory.createSession(Unknown Source) 在 com.pasquier.launcher.LogWebService.setLog(LogWebService.java:64) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:60) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 在 java.lang.reflect.Method.invoke(Method.java:611) 在 lotus.domino.JavaConnectInvoker.invoke(Unknown Source) 在 sun sun.reflect 处的 .reflect.GeneratedMethodAccessor3780.invoke(未知来源)。java.lang.reflect.Method.invoke(Method.java:611) 处的 DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
我尝试更改服务器配置中的某些点:
在 Server 文档中,我转到 Internet Protocols 选项卡,然后是 DIIOP 选项卡。我在主机名/地址字段中指定服务器的 Internet 主机名。我转到 Internet Protocols 选项卡、HTTP 选项卡和 R5 Basics 选项卡。然后我将“允许 HTTP 客户端浏览数据库”字段设置为是。
我添加了任务DIIOP,它不是同样的错误:
NotesException: Invalid user name/password
但我把令牌?我做错了什么?
一个主意 ?