Eclipse 启动tomcat 问题

来源:互联网 发布:北京地铁网络取票机 编辑:程序博客网 时间:2024/05/22 10:55

Eclipse启动tomcat 问题

背景:中午睡了一觉醒来,添加一个@aspect maven依赖jar包,重新启动tomcat,他妈就开始这个问题。

 

 

首先提示的问题:tomcat启动 indexOutofboundException异常

 

猜测:既然之前是能正常使用,添加@aspect jar包才出现,虽然心里很不愿意相信这居然和jar包,添加有关系。还是老实的把maven添加的jar包去除,在update之后再次重启,还是出现这个问题。

 

既然是索引越界异常,那这应该是和内存有关系。我就先改内存,改了eclipes.ini ,

就差出现另外一个问题,could not create java virtual machime。这是好事,(虽然又多了个问题,但是你又能知道另外一个问题,好事...)。

这居然和虚拟机有关系,我在想:和jvm有关系,我还没学过多少jvm呢,不过这应该和jdk有关系,后来仔细想想,还是保守的认为不要改jdk,我又没动其他的地方,问题应该还是在tomcateclipses上。

仔细一看发现,console上还有一行:Invalid initial heap size: -Xms。这就说明应该和-Xms参数有关系。我原来的ini文件配置:

-vmargs

-Dosgi.requiredJavaVersion=1.8

-Xms512m

-Dosgi.module.lock.timeout=10

-Xverify:none

-Dorg.eclipse.swt.browser.IEVersion=10001

-Xmx1024m

-XX:PermSize=64m

-XX:MaxPermSize=128m

 

现在我还不太了解-Xms的作用,根据猜测是在jvm的堆内存中的新生代中的2s,作用是用来相互拷贝,去除不用的edgen新生对象(哈哈.....)。我还是老实的百度了一下:

(打脸...,-Xms参数是jvm初始化时分配大小内存,-XmXjvm允许分配的最大内存。

Xms此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

共享真好,可以百度。所以我开始写blog

言归正传:看起来我的配置也没有毛病啊!是不是我的格式有问题,还是我的电脑内存不够。我的内存8G,没道理内存不够啊。仔细核对了一下,好像格式也没有问题啊,但还是老老实实的改成-Xms1024, 不多说,重启eclipse.

(空闲时间:网上很多都是,重新安装tomcat8.0,我觉得还是不要这样冲动,这样问题可能解决了,但是还是不知道为什么出来这个问题,我觉得还是在没有办法的办法在考虑,推到重来的做法)

 

重启好了。。。。。

 

 

有新发现:之前publish一直在 browse deploment location没有看到发布的项目,之前也有连publish也报错:cannot publish to the server。这次好像有戏

  

来启动一下,还是激动了一下,但是还是:could not create java virtual machime,一样的bug,一样的味道。

但是我不急,我真的不急。我还有另外一种修改方法,ini配置修改是对eclipse的修改,但我们还没对启动项目的tomcat设置jvm参数,还是抱着希望的。

 

哒哒哒,我eclipse有很多个server,但都是使用同一个tomcat,我侥幸的心理,先把多余的server去除(不知道会不会影响内存,估计是瞎想吧,不过还是做了)

 

又启动tomcat,果然,还是同样的bug,还是同样的提示

 

现在修改tomcat的启动jvm参数,比较有信心。

 

我之前的jdk1.8jvm参数:

-Xms  128m -Xmx  512m

有空格,could not create java virtual machime猜测:应该是和空格有关系。

(好吧,我承认,之前是我混乱配置的,没头绪,没步骤,之后是冷静分析才开始写这个blog,然后边写边分析)

先改回来,去除空格。

 

再启动项目。

  

 

居然可以,可以启动成功。。。。。。。。。。

 

问题又来了,我之前为什么睡了一觉就出现这个问题呢??是因为我添加了@Aspectjar包吗??

 

又开始折腾自己,重新添加jar包。

 

卧槽。。。。。。。。。。问题又重现了:

An internal error occurred during: "Updating status for Apache Tomcat v8.0 (woshow-1.0) at localhost...".

java.lang.IndexOutOfBoundsException

 

果然是这个jar包的问题,不科学啊。走了一圈,发现还是原来觉得不可能的事引发的错误。。。。。就当学习了一下

<dependency>

    <groupId>org.aspectj</groupId>

    <artifactId>aspectjrt</artifactId>

    <version>${aspectj.version}</version>

</dependency>

<dependency>

    <groupId>org.aspectj</groupId>

    <artifactId>aspectjweaver</artifactId>

    <version>${aspectj.version}</version>

</dependency>

 

 

哪位大神能帮我解答一下。