gpt4 book ai didi

java - AS400系统与JNDI的连接

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:45 24 4
gpt4 key购买 nike

我可以弄清楚如何使用 JNDI 资源通过 jt400 连接到 AS400:

    Connection conn = null;
Statement stmt = null;
try {
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
conn = ((DataSource) ctx.lookup("jdbc/AS400")).getConnection();
System.out.println(conn.getClientInfo());

stmt = conn.createStatement();
//SQL data fetch using the connection
ResultSet rs = stmt.executeQuery("SELECT * FROM LIBRARY.TABLE");
while (rs.next()) {
System.out.println(rs.getString("COLUMN1"));
}
conn.close();
conn = null;
}
catch(Exception e){System.out.println(e);}

但是,应用程序的另一部分使用 DataQueues(来自同一 jt400 库):

    String queue = "/QSYS.LIB/" + libraryName +".LIB/" + queueName +".DTAQ";

try{
system = new AS400(server, user, pass);
DataQueue dq = new DataQueue(system, queue);

// Convert the Data Strings to IBM format
byte[] byteData = message.getBytes("IBM285");

dq.write(byteData);
System.out.println("Wrote to DataQueue");

}catch(Exception e){
e.printStackTrace();
System.err.println(e);
}finally{
// Make sure to disconnect
if(system != null){
try{
system.disconnectAllServices();
System.out.println("Disconnected from DataQueue.");
}catch(Exception e){
System.err.println(e);
}
}
}

在 DataQueues 的工作代码中引用服务器、用户、通行证,这并不理想。

我想利用我已经设置的 AS400 JNDI 连接,但是我看到的有关将 Java 连接到 DataQueues 的每个示例都引用了与此非常相似的示例。

documentation一切似乎都指向AS400系统对象,它们是对服务器名、用户、通行证等的硬编码引用。

是否有更好的方法将 DataQueue() 与 JNDI 引用结合使用?

最佳答案

正如上面评论中假设的那样,DataQueue根本不是 JDBC 连接的一部分,它不能用于配置用于读取和写入 DataQueue 的连接。由于这种情况,即使 jt400 库与 JDBC 连接,它也无法共享 JDBC 使用的连接方法。除非在 DataQueue/Java examples online 中指定了硬编码连接,否则需要属性文件或其他基于服务器的解决方案。 (全部 1 个)。

关于java - AS400系统与JNDI的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41750519/

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