我设置了tomcat';s JAVA_OPTS-Xss=128k,然后我得到了这个Spring错误

我设置了tomcat';s JAVA_OPTS-Xss=128k,然后我得到了这个Spring错误,tomcat,xss,java-opts,Tomcat,Xss,Java Opts,我修改了tomcat的init脚本(catalina.sh)——如下设置JAVA_选项: JAVA_OPTS=“-server-Xms8g-Xmx8g-Xmn3g-Xss128K-Dj ava.awt.headless=真”。然后我启动了tomcat,它的日志出现了这个Spring错误: “2012-08-10 16:40:20.697错误上下文初始化失败 java.lang.NoClassDefFoundError:无法初始化类org.springframework.beans.factory

我修改了tomcat的init脚本(catalina.sh)——如下设置JAVA_选项: JAVA_OPTS=“-server-Xms8g-Xmx8g-Xmn3g-Xss128K-Dj ava.awt.headless=真”。然后我启动了tomcat,它的日志出现了这个Spring错误:

“2012-08-10 16:40:20.697错误上下文初始化失败 java.lang.NoClassDefFoundError:无法初始化类org.springframework.beans.factory.BeanCreationException“

但在我设置JAVA_选项之前,它工作得很好。为什么会这样?我该怎么办?非常感谢

整个堆栈跟踪是: 2012-08-10 16:40:20.697错误上下文初始化失败 java.lang.NoClassDefFoundError:无法初始化类org.springframework.beans.factory.BeanCreationException 位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) 位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 位于org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 位于org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 位于org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListableBeanFactory.java:585) 位于org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) 位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 位于org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) 位于org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) 位于org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 位于org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972) 位于org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) 位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) 位于org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041) 位于org.apache.catalina.startup.HostConfig.deploy目录(HostConfig.java:964) 位于org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502) 位于org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) 位于org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) 在org.apache.catalina.util.LifecycleSupport.FireLifecycleSupport(LifecycleSupport.java:119)上 位于org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 位于org.apache.catalina.core.StandardHost.start(StandardHost.java:722) 位于org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 位于org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 位于org.apache.catalina.core.StandardService.start(StandardService.java:516) 位于org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 位于org.apache.catalina.startup.catalina.start(catalina.java:593) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中 位于java.lang.reflect.Method.invoke(Method.java:597) 位于org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 位于org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)


JAVA_OPTS配置是旧配置,不是我写的。

您显然将线程堆栈大小设置得太小了。除非您有充分的理由这样做,否则根本不要修改线程堆栈大小。

您显然将线程堆栈大小设置得太小了。除非你有充分的理由这样做,否则根本不要修改线程堆栈的大小。

你需要发布整个堆栈跟踪以获得适当的响应。你真的需要设置“年轻”一代的大小吗?对我来说,这似乎是一个非常庞大的年轻一代。线程堆栈大小也一样:您真的需要设置这些选项吗?谢谢您的评论。从JAVA_OPTS中删除所有这些选项,然后一次一个地添加回来,看看是哪个选项触发了错误。另外,最好使用CATALINA_OPTS而不是JAVA_OPTS,因为即使在启动JVM时,只要向Tomcat发送“shutdown”消息,也会使用JAVA_OPTS。我使用了您的方法:“从JAVA_OPTS中删除所有这些选项,然后一次一个地添加回来。”我知道原因是选项“-Xss128K”。只需删除此选项并保留其他选项,即可正常工作。那么“-Xss”选项的默认值是什么?我把它放得太小了吗?我的环境:OS:Ubuntu 10.04 64位JAVA:JAVA版本“1.6.0_06”JAVA(TM)SE运行时环境(build 1.6.0_06-b02)JAVA热点(TM)64位服务器虚拟机(build 10.0-b22,混合模式)Tomcat:6.0.24非常感谢!您需要发布整个堆栈跟踪以获得适当的响应。您真的需要设置“年轻”一代的大小吗?对我来说,这似乎是一个非常庞大的年轻一代。线程堆栈大小也一样:您真的需要设置这些选项吗?谢谢您的评论。从JAVA_OPTS中删除所有这些选项,然后一次一个地添加回来,看看是哪个选项触发了错误。A.