0

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如果我将属性改回"true"server.xml 中,一切正常。

4

1 回答 1

0

似乎错误消息是由于 Tomcat 7 中的注释扫描造成的。另请参阅this other thread。AFAIK 运行未爆炸的 Hippo CMS 没有已知限制,但这不是最常用的设置。您可能想要禁用注释扫描,看看是否能解决问题。如果不是,看看另一个堆栈跟踪会很有趣。

于 2015-07-21T09:05:09.243 回答