0

我已经Run Jetty Run为 Eclipse 安装了插件。

按照入门用户指南,我能够创建一个新的 Java 项目,创建web文件夹,然后WEB-INF在其中工作。WEB-INF是一个空文件夹并且webindex.html.

现在我只想通过环回接口启用连接。我的猜测是可以通过WEB-INF\web.xml文件进行配置,但我找不到任何关于Run Jetty Run.

我怎样才能做到这一点?

4

2 回答 2

1

没有简单的方法可以做到这一点!

在runjettyrun的源代码(runjettyrun.Bootstrap.java)中:

private static void initConnnector(Server server, Configs configObj) {
    SelectChannelConnector connector = new SelectChannelConnector();

    //Don't set any host , or the port detection will failed. -_-#
    //connector.setHost("127.0.0.1");
    connector.setPort(configObj.getPort());

    if (configObj.getEnablessl() && configObj.getSslport() != null)
        connector.setConfidentialPort(configObj.getSslport());

    server.addConnector(connector);

    if (configObj.getEnablessl() && configObj.getSslport() != null)
        initSSL(server, configObj.getSslport(), configObj.getKeystore(),
                configObj.getPassword(), configObj.getKeyPassword(),
                configObj.getNeedClientAuth());

}

插件需要检查是否使用了端口。

插件作者评论了“setHost”代码(也许你可以破解这个)。

也无法在“连接器”界面中设置主机:

org.eclipse.jetty.server.Connector.setHost(String)
于 2013-01-28T06:05:39.533 回答
0

我使用额外的 jetty.xml 破解了这个。在这个 jetty.xml 中,我将原始连接器(由插件创建)替换为根据我的需要配置的两个“新”连接器:

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
  <Call name="setConnectors">
    <Arg>
      <Array type="org.eclipse.jetty.server.Connector">
        <!-- HTTP Connector -->
        <Item>
          <New class="org.eclipse.jetty.server.ServerConnector">
            <Arg name="server"><Ref id="Server" /></Arg>
            <Set name="host">127.0.0.1</Set>
            <Set name="port">80</Set>
          </New>
        </Item>

        <!-- HTTPS Connector (Optional) -->
        <Item>
          <New class="org.eclipse.jetty.server.ServerConnector">
            <Arg name="server"><Ref id="Server" /></Arg>
            <Arg name="sslContextFactory">
              <New class="org.eclipse.jetty.util.ssl.SslContextFactory">
                <Set name="keyStorePath">C:/jdk1.7.0_51/jre/lib/security/cacerts</Set>
                <Set name="keyStorePassword">changeit</Set>
                <Set name="keyManagerPassword">changeit</Set>
              </New>
            </Arg>
            <Set name="host">127.0.0.1</Set>
            <Set name="port">8444</Set>
          </New>
        </Item>         
      </Array>
    </Arg>
  </Call>
</Configure>

在这种方法中,插件配置屏幕(eclipse 运行配置)中的“端口”、“SSL 端口”、“密钥库”、“密码”和“密钥密码”不会生效,因为这些配置将在附加jetty.xml 文件。

于 2014-06-20T11:58:57.907 回答