我已经Run Jetty Run
为 Eclipse 安装了插件。
按照入门和用户指南,我能够创建一个新的 Java 项目,创建web
文件夹,然后WEB-INF
在其中工作。WEB-INF
是一个空文件夹并且web
有index.html
.
现在我只想通过环回接口启用连接。我的猜测是可以通过WEB-INF\web.xml
文件进行配置,但我找不到任何关于Run Jetty Run
.
我怎样才能做到这一点?
没有简单的方法可以做到这一点!
在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)
我使用额外的 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 文件。