首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法打开数据库,因为会话总是空的

我无法打开数据库,因为会话总是空的
EN

Stack Overflow用户
提问于 2014-07-07 10:32:12
回答 1查看 511关注 0票数 0

我想为我的所有all服务创建一个日志。我有java的日志,它能工作。我想在中使用我使用LS2J类的java类来做同样的事情。

它可以组合我的java类和ls2j代码。当我尝试在Lotus中调用这个java时,它会工作!但是当我用getter在java中调用它时,我有一个空值!

代码语言:javascript
复制
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类:

代码语言:javascript
复制
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中:我不需要有一个会话,这总是空的

代码语言:javascript
复制
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中,我尝试创建一个新会话:

代码语言:javascript
复制
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 );     
    }

结果是:

无法从Domino获得IOR : lotus.domino.NotesFactory.requestIORPlain(Unknown来源的http://myhost/diiop_ior.txt )在lotus.domino.NotesFactory.requestIORUsingArgs(Unknown源的lotus.domino.NotesFactory.getIOR(未知源)在lotus.domino.NotesFactory.createSession(Unknown Source)在com.pasquier.launcher.LogWebService.setLog(LogWebService.java:64)的sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法).reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at lotus.domino.JavaConnectInvoker.invoke(Unknown Source) at sun.reflect.GeneratedMethodAccessor3780.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611)

我试图更改服务器配置中的一些要点:

在Server文档中,我转到Internet协议选项卡,然后是DIIOP选项卡。我在“主机名/地址”字段中指定服务器的Internet主机名。我转到Internet协议选项卡、HTTP选项卡和R5基本选项卡。然后,我将“允许HTTP客户机浏览数据库”字段设置为“是”。

我添加了任务DIIOP,它不是相同的错误:

代码语言:javascript
复制
 NotesException: Invalid user name/password

但我把钱放了?我做错了什么?

一个主意?

EN

回答 1

Stack Overflow用户

发布于 2014-09-02 05:18:31

我将无法回答您的确切问题,因为我认为有更多的信息需要这样做。据猜测,在调用它之前,您似乎没有创建会话对象。

不过,我可以谈两点。

你提到了WebServices和LS2J。您的意思是在Java代码中有SOAP服务吗?如果是这样的话,那么您的代码将永远无法工作,因为LotusScript使用了相对于WebServices的保留对象。此保留对象阻止LS2J正确工作。

如果是这样的话,唯一的解决方案就是完全使用Java。

另一点是与你的伐木有关。在Java中创建日志机制似乎太过分了。您可以在LotusScript中完成同样的任务。它甚至有自己的日志机制,名为NotesLog

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24608540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档