web项目引用Java项目,连接报错error HTTP Status 500 - Servlet execution threw an exception

image.png

错误信息
项目背景:

一个web项目引用一个java Project,项目中添加了引用,但是打开页面访问,总报500错误。提示:servlet初始化错误。

环境:Eclipse Oxygen

JDK: 1.9

Tomcat: 7.0
错误:exception javax.servlet.ServletException: Servlet execution threw an exception org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

刚开始一直没意识到是有三个jar包没有导入,因为在出错之后我测试各个模块的功能都没有出错。但是整体一起运行就出错。因此对于JavaWeb中的jar包加载一定要小心。
解决方案:
1.Project Properties -> Deployment Assembly


image.png

2.Add -> Java Build Path Entries


image.png

3.You should now see the list of libraries on your build path that you can specify for inclusion into your finished WAR.
Select the ones you want and hit Finish.


image.png

最后:对于为什么会出现这种错误。我也在此解释一下。
1.我在eclipse中导入了第三方jar包的,这也是为什么我在eclipse中对单个模块做测试没有出错


image.png

2.所以错误出现在部署上。
那什么是部署呢?其实就是将我们的项目打包放到web服务器上,通俗而言就是放到tomcat的webapps文件下面。项目就可以运行了。看下面的图,多模块的项目,由于我这个web模块是依赖其他模块的,所以就在Deployment Assembly上添加了对其他依赖模块(jar包,这些不需要自己手动添加,maven构建多模块项目时会自动为我们添加依赖)以及Maven Dependecies(我这里是手动添加的),然后当我们run on server也就是在tomcat上运行项目时,才可以正常部署。

总结对于web项目记得在Deployment Assembly也要导入自己的第三方jar包。

你可能感兴趣的:(web项目引用Java项目,连接报错error HTTP Status 500 - Servlet execution threw an exception)