ruby - 是否可以通过 Web 应用程序的 Java 对话框提示用户输入密码?

标签 ruby tomcat jdbc jruby ibm-midrange

我问的原因是,我有一个用 Ruby (1.8.7-p357) 和 Sinatra Framework (1.3.2) 编写的 Web 应用程序。解释器是 JRuby (1.6.7.2)。我正在连接到 AS/400 (System i v6r1),当我在代码中为应用程序提供错误的密码以连接到数据库时,系统提示我使用 Java 对话框提供正确的密码。

这可以在我的开发机器 (Ubuntu 11.10) 上使用 WEBrick 顺利运行。但是,当我使用不正确的密码部署应用程序时,应用程序会挂起。翻阅日志文件显示系统正在等待用户调用以下函数的响应:java.awt.Dialog.show()。

这里是跟踪的相关部分:

http-8080-2" daemon prio=6 tid=0x03d81400 nid=0x10c in Object.wait() [0x06278000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x24a022a8> (a java.awt.Component$AWTTreeLock)
at java.lang.Object.wait(Object.java:503)
at java.awt.WaitDispatchSupport.enter(Unknown Source)
- locked <0x24a022a8> (a java.awt.Component$AWTTreeLock)
at java.awt.Dialog.show(Unknown Source)
at com.ibm.as400.access.PasswordDialog.prompt(PasswordDialog.java:284)
at com.ibm.as400.access.ToolboxSignonHandler.handleSignon(ToolboxSignonHandler.java:499)
at com.ibm.as400.access.ToolboxSignonHandler.connectionInitiated(ToolboxSignonHandler.java:50)
at com.ibm.as400.access.AS400.promptSignon(AS400.java:2153)
at com.ibm.as400.access.AS400.signon(AS400.java:3417)
- locked <0x23121378> (a com.ibm.as400.access.AS400)
at com.ibm.as400.access.AS400.connectService(AS400.java:869)
at com.ibm.as400.access.AS400JDBCConnection.setProperties(AS400JDBCConnection.java:3016)
at com.ibm.as400.access.AS400JDBCDriver.prepareConnection(AS400JDBCDriver.java:1242)
at com.ibm.as400.access.AS400JDBCDriver.initializeConnection(AS400JDBCDriver.java:1105)
at com.ibm.as400.access.AS400JDBCDriver.connect(AS400JDBCDriver.java:355)

Web 应用程序是否可以通过这种方式在客户端计算机上启动 Java 对话框?如果是这样,为什么它在我的部署环境中失败了?

最佳答案

您需要设置 IBM Toolbox for Java JDBC property 提示false,并在连接失败时捕获异常。

enter image description here


此外,在运行服务器应用程序时设置 Java 系统属性 java.awt.headless=true 也是一个好习惯。

参见 Using Headless Mode in the Java SE Platform .

关于ruby - 是否可以通过 Web 应用程序的 Java 对话框提示用户输入密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11090363/

相关文章:

ruby-on-rails - Cocoon添加关联,如何限制关联数

angular - POST 到 Angular/Tomcat 时的 403 状态码

java - oracle.jdbc.OracleCallableStatement 强制转换异常

Java、jboss、mysql、jdbc : string max lenght ?

css - 如何使用 Sass/Compass 以编程方式定位多个背景?

ruby - 在 Ruby 中什么评估为 false?

spring - 本地服务器无法在 spring web mvc 中找到 welcome.jsp 文件

java - 如何在MySQL中将变量插入表中

ruby-on-rails - 找不到 rvm 命令

java - Eclipse 相当于 mvn tomcat6 :run?