如何使用Apache Tomcat Server运行Eclipse Dynamic Web Application?

PhD*_*per 3 eclipse deployment tomcat servlets localhost

我尝试在Eclipse上运行Apache Tomcat Server并遇到以下问题:

  1. Catalina_Base正在使用临时位置!
  2. 我无法部署依赖项"jar文件"!
  3. 运行我的Web项目时出现以下异常:
SEVERE: Servlet.service() for servlet [jsp] in context with path [] threw exception [java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;] with root cause java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
Run Code Online (Sandbox Code Playgroud)

PhD*_*per 6

我设法通过执行以下步骤解决了上述3个问题:

1-双击您的服务器(在本例中为tomcat)[如果您看不到它Windows -> Show/View -> Other -> Server -> Servers].您的服务器名称类似于:"localhost上的Tomcat v7.0服务器".

双击服务器并确保将服务器位置设置为:"使用Tomcat安装(控制Tomcat安装)".如果您无法编辑服务器位置:停止服务器,right-click the server and select Publish.如果你仍然无法编辑它:

右键单击服务器 - >添加和删除并删除项目,然后再次发布.

选择"使用Tomcat安装"的原因是Catalina_Base将指向一个临时位置,看起来像:

"-Dcatalina.base="C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1"
Run Code Online (Sandbox Code Playgroud)

即使在尝试打开Apache Tomcat Start Page时,这也会导致404错误.选择"使用Tomcat安装"时,Catalina_Home和Catalina_Base值将相同,并且两者都将指向Tomcat安装目录:示例:

-Dcatalina.base="C:\apache-tomcat-7.0.37" -Dcatalina.home="C:\apache-tomcat-7.0.37"
Run Code Online (Sandbox Code Playgroud)

要查看参数:

双击服务器,然后单击"打开启动配置",这些值将显示在"参数"选项卡中.

2-使用依赖项(ex External Jar文件)时,请确保文件位于:Web-Inf/lib,然后通过执行以下操作将它们添加到类路径:

右键单击项目 - >构建路径 - >配置构建路径选择"库"选项卡单击"添加外部JAR",然后在Web-Inf/lib中选择jar文件

接下来,您需要部署依赖项:要执行此操作:

右键单击项目 - >属性从左侧选择"部署程序集"在右侧单击添加 - > Java构建路径条目 - >下一步添加项目所需的所有jar文件.

否则,您将获得使用过的jar文件的类找不到异常.

3-确保Web-Inf/lib不包含来自Apache Tomcat的任何jar文件,因为这会导致冗余并且会给出上述异常!