启用 Java 控制台进行调试输出

启用 Java 控制台进行调试输出

我有一个Lantronix SpiderKVM(键盘-视频-鼠标)通过 VGA 和 USB 远程控制机器。

以前用起来还不错,但最近我RFB: Unable to connect在状态栏中Java Web 启动我可以使用该应用程序查看显示内容。

我在 Ubuntu 16.04 上使用 Spider 固件 v3.0.22 和 Java 8。我尝试了两者openjdk以及专有的 Oracle Java 发行版,但结果是一样的。

我该如何调试并修复该问题?

答案1

启用 Java 控制台进行调试输出

通常,建议显示 Java 调试控制台,以便您可以查看所有错误消息。您可以这样做:

  • 运行javaws打开设置菜单,选项卡AdvancedJava Console选择Show console

Java 安全设置

问题在于 Java 的新版本中增加了安全限制。

Spider 默认使用自签名证书。

您需要放宽安全设置以允许它,分两步进行(如下所述这里以及其他一些地方,但我将提供 Linux 的详细信息):

  1. 在 GUI 设置中:

    • 运行javaws以打开设置菜单。
    • 标签Security
    • 在本节中例外站点列表点击Edit Site List
    • 添加查看器应连接的 HTTPS 位置或 IP 和端口。

      就我而言,情况确实如此https://example.com:5555(因为我通过 NAT 将端口 5555 转发到 Spider 的查看器端口 443)。

  2. 在系统范围的 Java 设置中:

    • 编辑$JAVA_HOME/security/java.policy(通常/etc/java-8-openjdk/security/java.policy/etc/java-8-oracle/security/java.policy取决于您的安装)并
    • grant {部分中(在 下// default permissions granted to all domains,添加行:

      permission java.net.SocketPermission "example.com:5555", "connect, resolve";

编辑spider.jnlp文件以支持端口转发

Spider UI 中有一个名为Remote Console & HTTPS port(默认 443) 的设置,它决定了 javaws 查看器在哪个端口上连接到 Spider。

请注意,此端口与您访问 Spider Web UI 的端口无关!

例如,如果您的 Spider 位于具有端口转发功能的 NAT 后面,5555 -> 443您需要将设置更改为5555(如果您想在 NAT 内部继续使用 443,那么您可能不希望这样),或者更改spider.jnlpWeb UI 提供给您下载的文件。

spider.jnlp需要更改:

...
<argument>-PORT</argument>
<argument>443</argument>
<argument>-SSLPORT</argument>
<argument>443</argument>
...

...
<argument>-PORT</argument>
<argument>5555</argument>
<argument>-SSLPORT</argument>
<argument>5555</argument>
...

443(您可以通过在文件中搜索轻松找到它。)

特定错误消息的故障排除

我在控制台中遇到了以下错误消息:

  • Read timed out

    我尝试通过 HTTP 连接 Java Web Start 应用程序,但 Spider 配置 UI 支持 HTTP 和 HTTPS,而 Java Web Start 应用程序仅支持 HTTPS。(这个想法来自这里(在德国)。)

  • 单击按钮NullPointerException at sun.awt.X11.XPopupMenuPeer.getCaptionSize(XPopupMenuPeer.java:251)时JavaOptions

    我还没有想出如何解决这个问题,如果能得到任何帮助我将不胜感激。

更多提示

定义键盘快捷键

选项按钮不起作用(请参阅上面的问题)意味着您无法访问虚拟键盘或输入键盘快捷键。作为一种解决方法,您可以从 Web UI 的选项卡中添加键盘快捷键Interfaces -> KVM Console Settings,例如:

  • confirm Alt+PRINTSCREEN+B对于 Linux 内核的 SysRq 重新启动机器

热键实际上不是 Spider 的设置,而是 javaws 应用程序的设置;Web UI 只是.jnlp相应地生成文件。这意味着如果您知道键代码,您也可以直接在 JNLP 文件中添加键盘快捷键。

例如,上面的快捷方式在文件中生成.jnlp(默认按钮旁边Ctrl+Alt+Delete):

<argument>-HOTKEY_0</argument><argument>confirm Ctrl+Alt+Delete</argument>
<argument>-HOTKEYCODE_0</argument><argument>36 f0 37 f0 4e </argument>
<argument>-HOTKEYNAME_0</argument><argument>confirm Ctrl+Alt+Delete</argument>

<argument>-HOTKEY_1</argument><argument>confirm Alt+PRINTSCREEN+B</argument>
<argument>-HOTKEYCODE_1</argument><argument>37 f0 48 f0 2f </argument>
<argument>-HOTKEYNAME_1</argument><argument>confirm Alt+PRINTSCREEN+B</argument>

答案2

如果最新的固件更新,则不再需要 Java,因为查看器现在运行 HTML5,它可在任何最新的浏览器中使用。

以下是 Safari 的屏幕截图:

在此处输入图片描述

更新固件的链接:

相关内容