使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaoliangyuu/p/10142912.html

问题描述:

使用myeclipse10的tomcat插件部署web项目时,首次部署。实际部署到了tomcat/webapps目录下且tomcat启动成功,但是eclipse报错"An internal error occurred during: "Add Deployment"  :使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception 

且eclipse中看不到部署的项目。重新部署按钮也无法点击,如图:

myeclipse中看不到部署的项目:

使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

myeclipse中可以看到部署的项目如下(作为看不到项目的对比):

使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

再次试图部署项目时,提示如下对话框(感觉是虽然myeclipse部署报错了,但是myeclipse又记住已经部署过该项目):

使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

尝试解决一(未成功):

网上查询很多都是 jdk版本问题,于是尝试修改系统环境变量、myeclipse中项目依赖的jdk版本、myeclipse中项目 java compiler的jdk版本、web项目属性中 project facets中的jdk版本。因为本次出问题的项目是从svn上down下来的。我之前有一个工作空间,存放该项目且没有出现此问题。所以把所有相关工程的jdk版本相关属性都设置为和未出问题的项目一样。但是还是报相同的错误

修改myeclipse中项目依赖的jdk版本,图:

使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

修改myeclipse中项目 java compiler的jdk版本,图:

使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

修改web项目属性中 project facets中的jdk版本,图:

使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

尝试解决二(成功):

步骤一:

新建eclipse的workspace,导入之前可以部署成功工作空间中的项目及所有相关工程,可以部署成功。所以猜测是svn上的项目源码有问题。

步骤二:

在出问题的工作空间中,

1、新建web工程Test,copy问题项目的源码到Test工程。并为Test工程 添加问题项目的依赖工程。
2、部署Test项目,可以复现问题。可能问题原因1、项目的源码  2、问题项目依赖的工程出现了问题。
3、新建web工程Test2,添加问题项目的依赖工程,部署项目可以复现问题。确定是依赖的工程出现的问题
4、逐个排查依赖工程,确定其中的一个依赖工程 bean 工程有问题。
5、使用文件比较工具(beyond copare)与正常的bean工程比较,并逐个排查源码、pom.xml、配置等文件夹。确定是有无pom.xml的问题: 出问题的工程没有pom.xml;成功的工程有pom.xml

使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

步骤三

感到非常奇怪,myeclipse插件tomcat是否deploy成功竟然和 是否有pom.xml有关。猜测可能是eclipse的bug,或者eclipse的tomcat插件的bug!!

笔记bean工程下的其他文件,发现出问题的项目的bean工程下.classpath文件有maven相关的配置

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>

图:

使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

删除该行配置,也可以解决此问题。

总结解决方法:

解决方法一:
bean工程添加pom.xml文件
解决方法二:
1、bean工程 删除pom.xml文件
2、bean工程 打开 .classpath文件,删除如下行
     <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
 
总结:
1、由于对maven和myeclipse中tomcat插件的原理了解的不深,所以最终也无法确定问题。猜测可能是maven配置问题导致的。
2、事实上,解决方法一是从网上搜罗到的各种解决方法。解决方法二是自己排查问题的思路。如果对您的问题有帮助,欢迎评论和点赞。
3、如果您知道问题的确切原因或可能原因,欢迎指教!!谢谢!!
 
-----------------------------------------------------------------------------------------------------------------------------------
^_^欢迎交流!!点赞请用力,拍砖请轻拍!!!