eclipse - 如何使用 Apache Tomcat 服务器运行 Eclipse 动态 Web 应用程序?

标签 eclipse tomcat servlets deployment localhost

我尝试在 Eclipse 上运行 Apache Tomcat 服务器,但遇到了以下问题:

  1. Catalina_Base 正在使用临时位置!
  2. 我无法部署依赖项“jar 文件”!
  3. 我在运行我的网络项目时遇到以下异常:
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;

最佳答案

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

1- 双击您的服务器(在本例中为 tomcat)[如果看不到它,请转到 Windows -> Show/View -> Other -> Server -> Servers]。您的服务器名称将类似于: “本地主机上的 Tomcat v7.0 服务器”。

双击服务器并确保服务器位置设置为: “使用 Tomcat 安装(控制 Tomcat 安装)”。 如果您无法编辑服务器位置: 停止服务器,右键单击服务器并选择“发布”。 如果您仍然无法编辑它:

Right click the server --> Add and Remove and remove your project then publish it again.

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

"-Dcatalina.base="C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1"

即使在尝试打开 Apache Tomcat 起始页时,这也会导致 404 错误。 选择“使用 Tomcat 安装”时,Catalina_Home 和 Catalina_Base 值将相同,并且都指向 Tomcat 安装目录: 示例:

-Dcatalina.base="C:\apache-tomcat-7.0.37" -Dcatalina.home="C:\apache-tomcat-7.0.37"

查看参数:

Double Click the Server then click on "Open launch configuration", the values will appear in the "Arguments" tab.

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

Right-click the project --> Build-path --> Configure Build Path Select the "Libraries" tab Click Add External JARs and select the jar files in Web-Inf/lib

接下来需要部署依赖: 为此:

Right-Click the project -> Properties From the left side select "Deployment Assembly" On the right hand side click Add -> Java Build Path Entries -> Next Add all the jar files your project needs.

否则,对于使用的 jar 文件,您将得到一个未找到类的异常。

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

关于eclipse - 如何使用 Apache Tomcat 服务器运行 Eclipse 动态 Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15414586/

相关文章:

php - Eclipse:查找分布在多行中的查询字符串

jsf - 登录.xhtml : The requested resource is not available

java - 解析 JSON 对象时出现 NoClassDefFoundError JsonAutoDetect

c++ - Eclipse 无法打开作为参数给出的文件

java - java无法读取json文件

java - 应用程序关闭时调用方法

java - 通过端口限制对 Servlet 的访问

java - 如何实现从 WAR 中提取的共享接口(interface)

javascript - spring boot 运行但独立的 tomcat 不工作

java - 为服务器端缓存一个jsp