java – Apache CXF AtomPullServer

我正在尝试配置AtomPullServer以查看Apache CXF日志.
我使用的是Tomcat 7,Apache CXF 2.7.6,Apache Abdera 1.1.3.

根据文档,我唯一要做的就是将它添加到Spring上下文配置文件中

<bean id="atomPullServer" class="org.apache.cxf.management.web.logging.atom.AtomPullServer" init-method="init">
    <property name="level" value="ERROR" />
    <property name="maxInMemorySize" value="100"/>
</bean>

<jaxrs:server id="atomServer" address="/atom">
    <jaxrs:serviceBeans>
        <ref bean="atomPullServer"/>
    </jaxrs:serviceBeans>

    <jaxrs:providers>
        <bean id="feed" class="org.apache.cxf.jaxrs.provider.atom.AtomFeedProvider" />
        <bean id="entry" class="org.apache.cxf.jaxrs.provider.atom.AtomEntryProvider" />
        <bean class="org.apache.cxf.jaxrs.ext.search.SearchContextProvider"/>
    </jaxrs:providers>
</jaxrs:server>

但是当我添加它时,我得到(在控制台中)线程中的异常“http-bio-8080-exec-X”java.lang.OutOfMemoryError:访问任何服务时的PermGen空间,当然服务器没有回应了.如果我删除这些行一切正常.

知道可能是什么问题吗?

解决方法:

当JVM加载的java类元信息量超过阈值时,通常会发生java.lang.OutOfMemoryError:PermGen空间错误.

这个问题可能有不同的可能原因(讨论here),但它可能只是配置原子服务器触发加载不适合默认permgen区域的其他类.

您应该尝试通过设置以下JVM选项来增加Tomcat JVM的PermGen大小:

-XX:MaxPermSize=256m

有关更多信息,请参阅this answer.

上一篇:java Holder vs document-style,或者为什么使用Holders


下一篇:java – 在类路径资源META-INF / cxf / cxf.xml中定义的名称为’cxf’的bean创建错误