tomcat报错Error during artifact deployment. See server log for details

文章目录


日志报错:

	org.springframework.beans.factory.BeanDefinitionStoreException: Could not resolve bean definition resource pattern [classpath:spring/applicationContext-*.xml]; nested exception is java.io.FileNotFoundException: class path resource [spring/] cannot be resolved to URL because it does not exist

前面是分析问题的原因,想直接看解决办法,跳转到 目录“解决办法” 即可

war和war exploded区别

war模式:将WEB工程以包的形式上传到服务器 ;
war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;

选择的方式不同,会影响 tomcat catalina.base
这里默认选择的是war exploded,已经选了war模式的话可以在配置里面再修改:
在这里插入图片描述

出现标题所示bug的话可以先参考一下这篇博文:
Error during artifact deployment. See server log for details.

这里我的解决方法是根据日志文件的报错信息(报错文件不存在),定位到项目所在的路径
在这里插入图片描述

在这里插入图片描述
一开始以为是上面的路径,然后发现并不是,项目是放在target文件夹下的:
为什么是在target文件夹下呢?看下面的图片
在这里插入图片描述

CATALINA_HOME是Tomcat的安装目 录,CATALINA_BASE是Tomcat的工作目录

进入工作目录,然后像我这样一直定位到下图localhost文件夹下的xml文件,会发现它把docBase定位到了target目录
在这里插入图片描述
为什么要这样定位到这里呢,因为在下载的tomcat的server.xml里的配置信息是这样的:
在这里插入图片描述

解决办法

上面的tomcat路径问题大概算是解决了吧,然后现在来解决实际问题:
进入target目录:
在这里插入图片描述
发现之前项目开发时写的一些xml文件并没有在里面反映出来,所以导致tomcat报错找不到***.xml文件,我的解决办法是在pom.xml文件里加入以下配置,把xml文件加载进target(最粗暴的方式是直接把xml文件复制粘贴进target的相应位置)

 <build>
    <finalName>写自己的项目名字,比如HelloWorld</finalName>
    <!--在IDEA中maven 默认编译的时候   只加载src/main/java里面的java文件到target/classes,其他文件会被忽略-->
    <!--这时,比如Mybatis的Mapper.xml文件就不能被加载进去,也就是不能映射成功-->
    <!--下面配置能解决这个问题-->
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.xml</include>
          <include>**/*.properties</include>
        </includes>
      </resource>
    </resources>
  </build>

然后这个时候重新运行项目,发现问题解决了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当出现"Error during artifact deployment. See server log for details."的错误信息时,通常是由于部署的Web应用程序出现了问题,但没有提供具体的错误信息。这可能是由于多种原因引起的。其中一种可能性是WebServlet的命名与其他servlet重复,导致冲突。这可能会导致Tomcat无法启动,并在日志中显示"Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/项目]]"的错误信息。[1] 另一种可能性是缺少必要的类或库文件。根据日志中的错误信息"java.lang.ClassNotFoundException",可以看出缺少了一些类,比如"org.springframework.web.context.request.RequestContextListener"和"org.springframework.web.context.ContextLoaderListener"。这可能是由于缺少相关的依赖库或配置文件引起的。[3] 为了解决这个问题,可以尝试以下几个步骤: 1. 检查WebServlet的命名是否与其他servlet重复,如果是,请修改命名以避免冲突。 2. 确保所有必要的类和库文件都正确地包含在项目中,并且路径设置正确。 3. 检查项目的配置文件,比如web.xml,确保所有必要的配置项都正确设置。 4. 查看服务器日志文件,以获取更详细的错误信息,以便更好地定位问题。 总之,当出现"Error during artifact deployment. See server log for details."的错误信息时,需要仔细检查相关的配置和依赖项,以解决问题。[2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值