FAIL - 已在上下文路径中部署应用程序/但上下文无法启动

FAIL - Deployed application at context path / but context failed to start

我在 2 个独立的 Web 应用程序中工作,一个是后台应用程序,一个是前台应用程序。 有趣的是,当我 运行 后端时,我没有任何问题。但是在前端我得到以下错误:

I have the following error in Netbeans 

NetBeans: Deploying on Apache Tomcat or TomEE
    profile mode: false
    debug mode: false
    force redeploy: true
Undeploying ...
undeploy?path=/
OK - Undeployed application at context path /
In-place deployment at D:\WebDevel\WebStore\WebFrontE\target\Web-1.0-SNAPSHOT
Deployment is in progress...
deploy?config=file%3A%2FC%3A%2FUsers%7E1%2FAppData%2FLocal%2FTemp%2Fcontext7815575477480252472.xml&path=/
FAIL - Deployed application at context path / but context failed to start

两者 运行 都在同一个 Tomcat 上。我的同事有相同的代码并且工作正常:-s

Context Path(或)Context Root 对于部署在服务器上的每个应用程序必须是唯一的。

因此您不能将具有相同上下文根的两个应用程序部署到同一台服务器。对于您的两个应用程序,上下文路径似乎都是 /

检查 server.xml 以查看它们都有什么上下文路径。如果它们不是唯一的,那么改变它们来解决问题。

但是如果您希望两个应用程序具有相同的上下文根,则需要将它们部署在两个不同的服务器中。

更多信息: Tomcat Context paths configuration

'undeployed application at context path' 此错误是由于在将项目从一个系统复制到另一个系统时丢失了一些文件而发生的。 在应对时确保所有文件都应该 copied.If 发生错误然后请重新复制项目并导入它.. 可能有用..

我遇到了同样的问题,但我只使用了 maven(没有 IDE)。我的tomcat版本是tomcat7 7.0.70-1和jdk8(在pom.xml:<java.version>1.8</java.version>)结果是tomcat7incompatible使用 java 8,所以,我在 <java.version>1.7</java.version> 上的 pom.xml 中更改了 java.version,这就是解决方案!

我遇到了这个问题,在查找了很多无效的链接后,找到了这个解决方案。在您的 Tomee 服务器上编辑 server.xml 以提供 appBase 的完全限定路径:

<Host name="localhost"  appBase="C:\apache\apache-tomee-7.0.2-plume\webapps"
                  unpackWARs="true" autoDeploy="true">

如果您的上下文没有正常启动,则会出现以下错误。 实例:您有调用方法的上下文侦听器,但该方法不存在。

我刚刚遇到了同样的问题,我通过在根文件夹中为 Apache Server Foundation 的用户授予安全权限解决了这个问题

我可能来晚了一点,但我想说这可能是因为 Tomcat 8 中工厂名称的更改。所以请按照以下步骤操作:

1)首先,看看你使用的是Tomcat8还是更高版本。

2) 如果是,并且 tomcat 无法部署您的应用程序。 运行 处于调试模式的应用程序并在 Tomcat window 中查看堆栈跟踪(在底部。与 Tomcat.log 不同)。向下滚动 window 并查看是否可以找到这样的异常:
原因:java.lang.NoClassDefFoundError:无法初始化 class org.apache.tomcat.dbcp。dbcp2.BasicDataSourceFactory

3) 如果您看到类似上面的内容,请打开您的 META-INF/context.xml 并在资源标签中替换或添加工厂属性: 工厂="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"

4) 重新启动 tomcat 并重新部署。

我遇到了同样的问题,我通过停止 IDE 中的 tomcat 和 运行 自动启动 tomcat 的 Web 应用程序解决了这个问题。(这有效在 Netbeans IDE 中)。只需停止 Tomcat 并重新启动并重新部署 Web 应用程序。

我的问题是 web.xml 中的语法错误,我没有关闭元素

tomcat window (NetBeans) 有一个明确的错误消息,谢谢 Arafat

01-Sep-2018 17:34:38.641 SEVERE [http-nio-8080-exec-5] org.apache.tomcat.util.digester.Digester.fatalError Parse Fatal Error at line 50 column 11: The element type "param-value" must be terminated by the matching end-tag "".

我也无法在我的 netbeans 上解决此类问题。我整天都在忙着解决这个问题。已经尝试了很多解决方案,但直到我尝试删除项目的 "target" 文件夹并解决了问题之前,仍然没有任何反应!希望能帮助到你! :)

在我的例子中,我删除了一些我在 web.xml 中添加的配置标签,试图配置一个 strut package.I 也分别删除了那个包,我重新启动了服务器,运行项目并且成功了。

@曾经遇到过同样的问题。在其中一个实例中,它是由具有多个具有相同路由的方法的控制器引起的,例如

@RestController
public class UsersController
{   
    @Autowired
    UsersInterface userInterface;

    @RequestMapping(value = "/get", method = RequestMethod.GET)
    public String test()
    {
        return "Users";
    }

    @RequestMapping(value = "/get", method = RequestMethod.GET)
    public List<user> getUsers()
    {
        List<User> users = userInterface.getUsers();
        return users;
    }
}

如您所见,控制器有 2 个方法定义了两个 get 路由,因此 Spring 无法将方法解析为 运行 .../users/get 路由。

远程 get 路线之一并将其更改为其他路线。

我可能会迟到回答,但以后可能会帮助其他人。

这个问题我已经遇到过好几次了,我尝试了下面的步骤并且成功了..!

1. 备份您当前的项目(为了安全)。

2. 找到项目文件夹位置(通常位于 MyDocumentsDocuments 文件夹中命名为 NetBeansProjects).

3. 打开项目文件夹并删除 项目中名为 target 的文件夹文件夹

4. 关闭 NetBeans 并重新打开它和 运行 项目。

你很高兴。

如果上述方法不起作用,请尝试从文件夹“Tomcat 9.[= 中删除 xml 文件 48=]”文件夹。

这可能有很多原因,但就我个人而言,最常见的原因是 web.xml 文件 servlet 声明。当我在 Mac 和 Linux 上交叉开发一个项目时,我看到由于某些 space 或换行问题,文件在两个平台上的行为不同。我花了几个小时才发现,因为 servlet 数量超过 20。最终我奇怪地缩小到只有一个控制器 class 声明,并发现语法绝对完美。它迷惑了我,所以我想我会在删除旧的和 BAM 之后重写声明!它立即在 Mac 上运行。奇怪。

我遇到了这个问题,在尝试了其他几个建议后,以下方法对我来说非常有效。

删除以下文件:

/apache-tomcat-9.0.13/conf/Catalina/localhost/*.xml

在尝试将 spring 启动 Web 应用程序从 jenkins 部署到外部 VM 时,我遇到了如下相同的错误。 在查看 tomcat 日志后,我发现这是 java 版本错误。我没有安装我的 spring 启动应用程序支持的正确 java 版本。 我安装了 openjdk 8 并从 vm 中删除了 java7,它已解决。

以下错误背后的实际原因可能有很多。因此,请检查您的 tomcat /logs/catalina.out 目录中的确切错误。在 Jenkins 构建日志中,它没有给出实际错误。

失败 - 在上下文路径 [/webapp] 但上下文

部署了应用程序

https://www.youtube.com/watch?v=1jsKGhXmm4c

由于语法错误,我在使用 Java Web 时遇到此错误:

我的Servlet代码应该是这样的:

@WebServlet(name = "EleicaoServlet", urlPatterns = {"/EleicaoServlet", "/main", "/insert", "/edit", "/delete", "/update"})

但是我忘记在“/更新”中输入“/”

@WebServlet(name = "EleicaoServlet", urlPatterns = {"/EleicaoServlet", "/main", "/insert", "/edit", "/delete", "update"})

我遇到了这个错误。

因此,如果以上都不起作用,您可能需要检查您的代码,它可能像这样愚蠢。

这有点晚了,但对于可能遇到同样错误的人来说。

对我来说,这个错误是由我的 servlet 语法错误引起的。

@WebServlet(urlPatterns = {"/x/login", "/x/register", "/x/logout", "x/createrestaurant"})

看起来像上面,我得到了同样的错误。过了一段时间并尝试在不同的服务器上部署(从 Tomcat 到 Glassfish),Glassfish 给了我更好的日志,我意识到语法应该是这样的

@WebServlet(urlPatterns = {"/x/login", "/x/register", "/x/logout", "/x/createrestaurant"}).

注意x/createrestaurant前的/

即使新添加的项目尝试了上面提到的很多东西,我也遇到了同样的问题。对我有用的是在安装目录 \Tomcat 9.0\bin Tomcat9w.exe 中手动停止 tomcat 服务。然后在 Netbeans IDE.

中以这种方式部署项目

失败 - 未能在上下文路径部署应用程序...

我遇到了同样的问题。但是我解决了。请看以下步骤:

  1. 首先,停止已经在后台运行的 Tomcat 服务,而不是在 Netbeans 中。为此,转到 TaskManager 属性>服务>tomcat
  2. 右击tomcat服务停止
  3. 现在,之后。再次关闭 netbeans IDE 和 运行
  4. 右键单击该项目并 select 运行。该项目将运行宁没有任何问题

希望以上解决方案对遇到相同错误的人有所帮助。