Tomcat 8:按给定顺序启动 WebApp
Tomcat 8: Starting WebApps in a given order
使用 Tomcat 8.0.15 和 Java 8
我需要先加载某个 WebApp,所以我将以下内容放入 server.xml:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" className="com.my.class.MyCustomHost">
<Context docBase="app_to_load" path="/app_to_load"/>
</Host>
MyCustomHost 如下所示:
public class MyCustomHost extends StandardHost {
public MyCustomHost () {
super();
this.children = new LinkedHashMap();
} }
此设置在 Tomcat 7.0.42(Java 7)中有效,但在 Tomcat 8.0.15(Java 8)中,我得到以下信息错误:
Apr 16, 2015 3:36:53 PM org.apache.tomcat.util.digester.Digester
startElement SEVERE: Begin event threw error
java.lang.IllegalAccessError at
com.my.class.MyCustomHost.(MyCustomHost.java:18)
我尝试使用的解决方案来自 here。任何输入都会有所帮助!谢谢!
children
是 Tomcat 8 中的一个 final
字段(请参阅此源代码 diff), so changing it is illegal. Fortunately, you can use this trick to set it to a LinkedHashMap
, or use the referred hack(有一些小的更改)以使 children
非决赛。
使用 Tomcat 8.0.15 和 Java 8
我需要先加载某个 WebApp,所以我将以下内容放入 server.xml:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" className="com.my.class.MyCustomHost">
<Context docBase="app_to_load" path="/app_to_load"/>
</Host>
MyCustomHost 如下所示:
public class MyCustomHost extends StandardHost {
public MyCustomHost () {
super();
this.children = new LinkedHashMap();
} }
此设置在 Tomcat 7.0.42(Java 7)中有效,但在 Tomcat 8.0.15(Java 8)中,我得到以下信息错误:
Apr 16, 2015 3:36:53 PM org.apache.tomcat.util.digester.Digester startElement SEVERE: Begin event threw error java.lang.IllegalAccessError at com.my.class.MyCustomHost.(MyCustomHost.java:18)
我尝试使用的解决方案来自 here。任何输入都会有所帮助!谢谢!
children
是 Tomcat 8 中的一个 final
字段(请参阅此源代码 diff), so changing it is illegal. Fortunately, you can use this trick to set it to a LinkedHashMap
, or use the referred hack(有一些小的更改)以使 children
非决赛。