gpt4 book ai didi

java - 备注异常 :Older version on server does not support this method

转载 作者:行者123 更新时间:2023-12-01 09:27:44 30 4
gpt4 key购买 nike

Lotusscript 调用 Java 类时出现此错误。抽象的:产品领域:Domino Designer on Eclipse (DDE)

技术领域:应用程序开发

平台:Windows 2008 R2 64位

发布:8.5.3

可重现:始终

1 在Notes数据库中创建SqlTest脚本库(Java)。模型.java:

    import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

import lotus.domino.*;

public class Model{

/**

Get database connection
@return
*/

public static Connection getConn(){

Connection conn = null;

String SqlDriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

String SqlDBUrl = "jdbc:sqlserver://22.11.95.30:1433;DatabaseName=TMSTEST";

String SqlUserName = "sa";

String Sqlpwd = "1q2w3e4r!";

try {

Class.forName(SqlDriverName);

conn = DriverManager.getConnection(SqlDBUrl, SqlUserName, Sqlpwd);

System.out.println("database connection sucess");

} catch (Exception e) {

e.printStackTrace();

System.out.println("database connection failure");

}

return conn;

}

public static boolean test1(String id){

//System.out.println("---------------------");

Connection conn = getConn();

Statement stmt = null;

String sql;

// Open the current Notes db

try {

Session s = NotesFactory.createSession("22.11.95.100:63148", "admin test/testeam", "testtest");

System.out.println("session is OK");

Database db = s.getCurrentDatabase();

// System.out.println("Title of URL database: \"" + db.getTitle() + "\"");

if (db.isOpen())

System.out.println("Is open");

else

System.out.println("Not open");
Document doc = null;

//through the id para get the Notesdocument

doc = db.getDocumentByUNID(id);

System.out.println(id);

//insert the Notesdocument data to sql

if (doc != null) {

sql = "insert into TEST_USER(userID, userName,xqbh) values('123456','"+doc.getItemValueString("fld_xqbh")+"', '"+doc.getItemValueString("fld_xqmc")+"')";

System.out.println("SQL :"+sql);

stmt = conn.createStatement();

stmt.execute(sql);

System.out.println("excute finish");

return true;

}else{

return false;

}

} catch (NotesException e) {

// TODO auto generate catch block

e.printStackTrace();

return false;

}catch(SQLException se){

se.printStackTrace();

return false;

}finally{

try{

if(stmt != null) stmt.close();

if(conn != null) conn.close();

}catch(Exception e1){

e1.printStackTrace();

}

}

}

}

2在Notes表单中:

    Uselsx "*javacon"
Use "SqlTest"


Function jTest(id As String) As Boolean

Dim jSession As New JAVASESSION

Dim jClass As JAVACLASS

Dim jObj As JavaObject

Set jClass = jSession.GetClass("Model")

'Msgbox jClass.className

Call jClass.test1(id)
End Function

3通过Lotusscript使用java类:

'call java class

Call jTest(doc.UniversalID)

4 调试程序通过IDE(Lotus Domino Designer)在java控制台日志中找到错误。使用一些打印语句并找到错误行(Java):

   Database db = s.getCurrentDatabase();

5 我看过以下帖子。

Invoking method on a Java class from lotus script (LS2J)

passing LotusScript parameter to Java

谷歌什么也没有,麻烦好几天了。谢谢大家,预先感谢。stackoverflow 中的第一篇文章。

最佳答案

问题在于您获取 session 的方式:您打开了一个与当前打开的 session 无关的全新 session 。该新 session 没有当前数据库,因为它未连接到您的前端 session 。

只需使用此行初始化您的 session :

Session session = getSession();

然后 getCurrentDatabase 就可以工作了。

关于java - 备注异常 :Older version on server does not support this method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39704947/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com