<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Jvm on ZRJ | 学习笔记</title>
        <link>https://blog.zrj.me/tags/jvm/</link>
        <description>Recent content in Jvm on ZRJ | 学习笔记</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-CN</language>
        <lastBuildDate>Thu, 19 Jul 2012 19:13:07 +0800</lastBuildDate><atom:link href="https://blog.zrj.me/tags/jvm/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>JVM虚拟内存调整</title>
        <link>https://blog.zrj.me/posts/2012-07-19-jvm%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98%E8%B0%83%E6%95%B4/</link>
        <pubDate>Thu, 19 Jul 2012 19:13:07 +0800</pubDate>
        
        <guid>https://blog.zrj.me/posts/2012-07-19-jvm%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98%E8%B0%83%E6%95%B4/</guid>
        <description>&lt;p&gt;这次真的是为了调一个环境花费两三天的时间，太纠结了，现在每天都要去听实习那个没什么意思的课程，只能每天中午午休的时候和晚上放学回来抓紧时间写一点，每次都是稍稍有点状态思路刚活跃时间就到了，又要走人&lt;/p&gt;
&lt;p&gt;这次异常调到后来，感觉弯路走了很多，于是开始有意识的用记事本记录下来，最开始的时候放在 MyEclispe 自带的 tomcat 5.5 里面，可以启动的起来，但是由于 5.5 不支持使用注释语法，于是自己换了个 tomcat 7 ，于是报异常，异常是&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;信息: validateJarFile(D:DocumentscodeMyEclipse86.metadataapache-tomcat-7.0.29webappsNeddyTravelWEB-INFlibel-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/el/Expression.class
2012-7-17 22:02:29 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:DocumentscodeMyEclipse86.metadataapache-tomcat-7.0.29webappsNeddyTravelWEB-INFlibservlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax rvlet/Servlet.class
2012-7-17 22:02:29 org.apache.tomcat.util.digester.Digester endElement
严重: End event threw exception
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;而当时的 web.xml 是这样子的&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;
&amp;lt;web-app xmlns:xsi=&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34; xmlns=&amp;#34;http://java.sun.com/xml/ns/javaee&amp;#34; xmlns:web=&amp;#34;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&amp;#34; xsi:schemaLocation=&amp;#34;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;#34; id=&amp;#34;WebApp_ID&amp;#34; version=&amp;#34;3.0&amp;#34;&amp;gt;
  &amp;lt;display-name&amp;gt;NeddyTravel&amp;lt;/display-name&amp;gt;
  &amp;lt;welcome-file-list&amp;gt;
    &amp;lt;welcome-file&amp;gt;index.html&amp;lt;/welcome-file&amp;gt;
    &amp;lt;welcome-file&amp;gt;index.htm&amp;lt;/welcome-file&amp;gt;
    &amp;lt;welcome-file&amp;gt;index.jsp&amp;lt;/welcome-file&amp;gt;
    &amp;lt;welcome-file&amp;gt;default.html&amp;lt;/welcome-file&amp;gt;
    &amp;lt;welcome-file&amp;gt;default.htm&amp;lt;/welcome-file&amp;gt;
    &amp;lt;welcome-file&amp;gt;default.jsp&amp;lt;/welcome-file&amp;gt;
  &amp;lt;/welcome-file-list&amp;gt;
  &amp;lt;context-param&amp;gt;
    &amp;lt;param-name&amp;gt;contextConfigLocation&amp;lt;/param-name&amp;gt;
    &amp;lt;param-value&amp;gt;/WEB-INF/applicationContext-*.xml&amp;lt;/param-value&amp;gt;
  &amp;lt;/context-param&amp;gt;
  &amp;lt;listener&amp;gt;
    &amp;lt;listener-class&amp;gt;org.springframework.web.context.ContextLoaderListener&amp;lt;/listener-class&amp;gt;
  &amp;lt;/listener&amp;gt;
  &amp;lt;filter&amp;gt;
    &amp;lt;display-name&amp;gt;Post&amp;lt;/display-name&amp;gt;
    &amp;lt;filter-name&amp;gt;Post&amp;lt;/filter-name&amp;gt;
    &amp;lt;filter-class&amp;gt;travel.filter.Post&amp;lt;/filter-class&amp;gt;
  &amp;lt;/filter&amp;gt;
  &amp;lt;filter-mapping&amp;gt;
    &amp;lt;filter-name&amp;gt;Post&amp;lt;/filter-name&amp;gt;
    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;
  &amp;lt;/filter-mapping&amp;gt;
&amp;lt;/web-app&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;感觉上应该是没有什么问题，出于慎重还是二分法注释掉了很多，最后基本上整个文件注释掉了，还是不行，异常变成这样&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;2012-7-19 18:00:30 org.apache.catalina.startup.HostConfig deployDirectories
严重: Error waiting for multi-thread deployment of directories to completehostConfig.deployWar=Deploying web application archive {0}
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1023)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1413)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:313)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:401)
	at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:346)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1140)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:785)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.OutOfMemoryError: Java heap space
	at java.io.DataInputStream.readUTF(DataInputStream.java:644)
	at java.io.DataInputStream.readUTF(DataInputStream.java:547)
	at org.apache.tomcat.util.bcel.classfile.ConstantUtf8.&amp;lt;init&amp;gt;(ConstantUtf8.java:48)
	at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:129)
	at org.apache.tomcat.util.bcel.classfile.ConstantPool.&amp;lt;init&amp;gt;(ConstantPool.java:60)
	at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:209)
	at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:119)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2066)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1942)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1908)
	at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1893)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1296)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:855)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:346)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1100)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	... 5 more
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;报内存溢出，一开始认为 tomcat 默认的内存应该是够的，于是就没有往调内存方面想，后来实在折腾不过，回到这个地方来，开始思考是否真的是 tomcat 的内存不够，写了这个代码用来查看虚拟机内存，&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Runtime&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;runtime&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Runtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getRuntime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;runtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;totalMemory&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1024&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;runtime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;freeMemory&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1024&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;发现内存初始只有 8M 左右，真的挺小，于是上网搜，根据方法，在 MyEclipse 的下配了 JVM 的内存，就好了&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;http://zrj.me/wp-content/uploads/2012/07/QQ%e6%88%aa%e5%9b%be20120719191113.png&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://blog.zrj.me/images/QQ%e6%88%aa%e5%9b%be20120719191113.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;折腾了许久的问题，居然这么傻逼，真是无颜面对江东父老啊&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
