HippoCMS 7.8是否支持使用未爆炸的WAR文件在Tomcat 7上进行部署?
我在server.xml中尝试了以下设置:
<Host name="localhost" appBase="/apps/cms/webapps"
unpackWARs="false" autoDeploy="false" deployOnStartup="false"
deployXML="false">
<Context
path="/cms"
docBase="public-cms-${hippo.version}"
reloadable="false"
crossContext="false">
<Resource
name="jdbc/repositoryDS" auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="10" minIdle="2" initialSize="2" maxWait="10000"
testOnBorrow="true" validationQuery="select 1"
poolPreparedStatements="true"
username="**********" password="**********"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/hippo"
/>
</Context>
</Host>
当我启动Tomcat时,我在catalina.out
日志中收到与以下类似的错误:
Jul 16, 2015 5:46:16 PM org.apache.catalina.startup.ContextConfig processAnnotationsJar
SEVERE: Unable to process Jar entry [ucar/nc2/iosp/hdf4/TagEnum.class] from Jar [jar:jndi:/localhost/cms/WEB-INF/lib/netcdf-4.2-min.jar!/] for annotations
java.io.EOFException
at org.apache.tomcat.util.bcel.classfile.FastDataInputStream.readUnsignedShort(FastDataInputStream.java:120)
at org.apache.tomcat.util.bcel.classfile.ClassParser.readAttributes(ClassParser.java:110)
at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:94)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2071)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1947)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1913)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1898)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1330)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:889)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5380)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Tomcat最终报告成功启动,但当我尝试访问CMS webapp时,我收到500错误,并显示消息“请求处理执行了100步,这意味着它可能处于无限循环中。”
如果我将unpackWARs
属性更改回server.xml中的"true"
,那么一切正常。
答案 0 :(得分:0)
似乎错误消息是由Tomcat 7中的注释扫描引起的。另请参阅此其他thread。 AFAIK对于运行Hippo CMS未爆炸没有已知的限制,但这不是最常用的设置。您可能希望禁用注释扫描,看看是否能解决问题。如果没有,那么看到另一个堆栈跟踪会很有趣。