我已为Eclipse安装了Run Jetty Run
插件。
关注Getting Started和User Guide我能够创建新的Java项目,创建web
文件夹,然后在其中创建WEB-INF
。 WEB-INF
是一个空文件夹,web
有index.html
。
现在我想仅通过环回接口启用连接。我的猜测是可通过WEB-INF\web.xml
文件进行配置,但我无法找到有关Run Jetty Run
使用的文件格式的任何文档。
我该怎么做?
答案 0 :(得分:1)
没有简单的方法可以做到这一点!
In the runjettyrun's source code (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)
答案 1 :(得分: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文件上定义。