【问题标题】:JBoss EJB Client using HTTP Proxy使用 HTTP 代理的 JBoss EJB 客户端
【发布时间】:2025-12-19 06:20:25
【问题描述】:

我正在尝试使用 jboss-remoting 对只能通过 HTTP 代理访问的 Wildfly 8.2.1 服务器进行 EJB 调用。

它失败了:

Feb 23, 2016 2:50:34 PM org.jboss.ejb.client.EJBClient <clinit>
INFO: JBoss EJB Client version 2.0.1.Final
Feb 23, 2016 2:50:34 PM org.xnio.Xnio <clinit>
INFO: XNIO version 3.3.0.Final
Feb 23, 2016 2:50:34 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.3.0.Final
Feb 23, 2016 2:50:34 PM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 4.0.7.Final
Feb 23, 2016 2:50:40 PM     org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector setupEJBReceivers
WARN: Could not register a EJB receiver for connection to 192.x.y.z:443
java.lang.RuntimeException: Operation failed with status WAITING

它尝试设置 Java System Props,如下所示,但没有用:

-Dhttp.proxyHost=web-proxy.yyy.xxx.net
-Dhttp.proxyPort=8080
-Dhttps.proxyHost=web-proxy.yyy.xxx.net
-Dhttps.proxyPort=8080
-DproxySet=true

我们正在使用 PropertiesBasedEJBClientConfiguration,但我找不到类似“remote.connection.default.connect.options.org.xnio.Options.*”的属性来设置代理。

当前配置:

("remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "true");
("remote.connection.default.connect.options.org.xnio.Options.SSL_STARTTLS", "true")
("remote.connection.default.connect.options.org.xnio.Options.SSL_PROTOCOL", "TLS")
("remote.connection.default.connect.options.org.jboss.remoting3.RemotingOptions.HEARTBEAT_INTERVAL", "600000")
("remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS", "false")
("remote.connections","default")
("remote.connection.default.host", host)
("remote.connection.default.port", port)
("remote.connection.default.protocol", protocol)

【问题讨论】:

    标签: java jboss proxy wildfly wildfly-8


    【解决方案1】:

    我遇到了同样的问题,解决方法是卸载杀毒软件。杀毒软件 Bitdefender 阻止了 Wildfly 的通信。

    【讨论】:

    • 其实我发现它确实不支持使用jboss-remoting的HTTP Proxy。
    【解决方案2】:

    此处请求对转发 HTTP 代理的 EJB 客户端支持:EJB-Client cannot connect by HTTP-proxy。这似乎是 XNIO(JBoss Remoting 使用的低级 I/O 库)而不是 EJB 客户端本身的问题。

    【讨论】: