SpringBoot在IDE可以正常运行,但是部署到Tomcat里就会启动失败 10C

我打算使用spring-boot + mybits plus构建一个RESTful服务器,在Eclipse里可以正常运行。但是一旦打包放到Tomcat里就会出现如下错误(NoSuchBeanDefinition),个人推测是某些配置文件没写完整或者有错误,导致的实例注入失败。
不过我检查了很多遍,尝试了很多办法,依然还是会有这个问题。
请各路大神帮帮忙!!

目录结构:
java-xxx.xxx.xxx.xxx.dao
|-xxx.xxx.xxx.xxx.entity(也就是javaBean类)
|-xxx.xxx.xxx.xxx.service(业务逻辑接口)
|-xxx.xxx.xxx.xxx.service.impl(业务逻辑实现类)
|-xxx.xxx.xxx.xxx.controller
resource-mapper . xxx . xxx.xml

pom.xml版本信息:

mybatisplus.spring.boot.version-1.0.5
mybatis-plus-2.3
spring-boot-starter-parent-2.3

application.yml信息:
mybatis-plus部分如下

mapper-locations: classpath:mapper/**/*.xml
typeAliasesPackage: com.latou.power.modules.*.entity

Java版本-1.8.0
Tomcat版本-8.5

Tomcat报错如下:

ConfigServletWebServerApplicationContext :
Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'custUserController': Unsatisfied dependency expressed through field 'custUserService';

nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'custUserService': Unsatisfied dependency expressed through field 'baseMapper';

nested exception is org.springframework.beans.factory.NoSuchBeanDefinition Exception: No qualifying bean of type 'com.latou.power.modules.cus.dao.CustUserDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

0

12个回答

会不会是@Service("custUserService") 这里把service注册了两次,直接@Service不行么

1
Lote921203
Latou_csdn 试了一下,直接@Service,好像确实不会影响在IDE里运行,不过还是会报一样的错误,看起来不是因为这个
10 个月之前 回复
Lote921203
Latou_csdn 试了一下,直接使用@Service,编译器内运行无异常,Tomcat内启动会报错Error creating bean with name 'custUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper';
10 个月之前 回复
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-tomcat</artifactId>
 <scope>provided</scope>
</dependency>
 <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
         <exclusions>  
                <exclusion>  
                    <groupId>org.springframework.boot</groupId>  
                    <artifactId>spring-boot-starter-tomcat</artifactId>  
                </exclusion>  
            </exclusions> 
    </dependency>

1
Lote921203
Latou_csdn 我把这个加进了pom.xml里,还是会报一样的错误,看起来不是因为这个
10 个月之前 回复

我记得springboot项目不是自带容器的么,那你试一试打包成jar包或者war包 直接cmd命令启动试一下

0
Lote921203
Latou_csdn 尝试了打成jar包,用cmd命令运行了一下,还是报一样的错误
11 个月之前 回复

尝试了打成jar包,用cmd命令运行了一下,还是报错,错误信息如下:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'custUserService': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.latou.power.modules.cus.dao.CustUserDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

0

尝试将项目文件部署到远程和本地服务器,都是报一样的错误

0

补充一下Controller、Service、ServiceImpl、DAO、Entity以及Mapper XML文件

实体类:

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import java.io.Serializable;
 @TableName("表名")
public class CustUserEntity implements Serializable {
    //一些属性和对应的 get & set方法
}

DAO:

import org.apache.ibatis.annotations.Mapper;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.latou.power.modules.cus.entity.CustUserEntity;

@Mapper
public interface CustUserDao extends BaseMapper<CustUserEntity> {

}

Service:

 import com.baomidou.mybatisplus.service.IService;
import com.latou.power.modules.cus.entity.CustUserEntity;

public interface CustUserService extends IService<CustUserEntity> {
    // 接口方法
}

// Service 实现类

 import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.latou.power.modules.cus.dao.CustUserDao;
import com.latou.power.modules.cus.entity.CustUserEntity;
import com.latou.power.modules.cus.service.CustUserService;

@Service("custUserService")
public class CustUserServiceImpl extends ServiceImpl<CustUserDao, CustUserEntity> implements CustUserService {
    // 实现方法
}

Controller:

 @RestController
@RequestMapping("cus/custuser")
public class CustUserController {

    @Autowired
    private CustUserService custUserService;
}

Mapper XML:

 <mapper namespace="com.latou.power.modules.cus.dao.CustUserDao">
    <resultMap type="com.latou.power.modules.cus.entity.CustUserEntity" id="custUserMap">
        // 一些字段映射关系
    </resultMap>
</mapper>
0

打成war包,把pom.xml packaging 改成war, 启动类继承SpringBootServletInitializer,

  @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(xxx.class);
        }
    public static void main(String[] args) {
        SpringApplication.run(xxx.class, args);
    }
0
Lote921203
Latou_csdn 我是像你说的这样写的,要不然在编译器里都启动不了了
11 个月之前 回复

CustUserService是不是这个bean没有注册到spring容器中

0

或者是你向spring容器中注册了两次,正常情况下注解方式,和配置文件方式有一个生效就可以

0
Lote921203
Latou_csdn 配置文件里没有Service的注解,只有entity的注解。ServiceImpl的注解我是用的@Service("custUserService")
11 个月之前 回复

spring boot是自带tomcat容器的如果是要以war包形式放入tomcat中运行需要在pom文件中加入

org.springframework.boot
spring-boot-starter-tomcat
provided

或是在web包下进行注明

org.springframework.boot
spring-boot-starter-web




org.springframework.boot

spring-boot-starter-tomcat





实际开发使用过

0
共12条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring-boot:Filter用main方法可以启动,但是放到tomcat下面不能启动
public class RedirectFilter implements Filter {      @Autowired       AppSetting webAppSetting       @Override      public void init(FilterConfig filterConfig) throws ServletException {            log...
javaweb中项目提示错误但是内容无错,并且可以运行。但是用tomcat发布时报错。
javaweb中项目提示错误但是内容无错,并且可以运行。但是用tomcat发布时报错。
SpringBoot 发布到Tomcat运行报错原因之一
IntelliJ IDEA搭建SpringBoot应用: https://www.cnblogs.com/winner-0715/p/6666302.htmlSpringBoot发布到独立的tomcat中运行: https://blog.csdn.net/qq_28988969/article/details/781357681、当版本号为:1.5.6.RELEASE可以以在Tomcat7中运行2...
Spring boot 项目在本地正常运行,部署到服务器出现问题
1.启动类 修改 /** spring boot 部署,需要启动类继承SpringBootServletInitializer 重写configure */ @MapperScan(value = “com.tydic.ohaotian.mydemo.dbdemo.dao”) @SpringBootApplication public class MydemoApplication exte...
Tomcat在Eclipse中直接启动后,localhost:8080 报404错误解决方法
今天下载了一个Tomcat 6.0.35版本,配置完环境变量等东西后,直接运行bin目录下的 startup,tomcat可以正常启动, http://localhost:8080 可以正常访问。 之后在Eclipse中新建了一个server 使用这个版本的Tomcat,不加载任何工程的情况下,运行显示启动成功,但是访问 http://localhost:8080报 404错误。 如果不...
springboot 项目 在idea 运行正常,部署tomcat 访问不了
1.检查tomcat的配置 传送门 2.修改application配置 (本人问题出处,告诉容器入口) @SpringBootApplication public class DemoApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilde...
备忘录-启动eclipse后,运行tomcat显示服务启动失败,cmd输入命令startup可以正常启动tomcat
别的办法就不想了,用了这么就最直接的一招就是重新安装,记得把正常运行时候的tomcat源代码备份打包一份备用,然后以前的tomcat出问题后拿出来用,注意环境配置...
springboot打包运行失败
springboot打包后在cmd中运行出现 .war中没有主清单属性的异常,。原因是:    打包的目录里面的MANIFEST.MF文件中没有加载主类,即没有Start.class...解决方案:    在pom.xml中添加&amp;lt;mainClass&amp;gt;重修打包后可以正常运行war包。...
eclipse下Tomcat运行项目可以正常运行,但是localhost:8080打不开
双击Servers中添加的Tomcat8.0,将Server Locations修改为第二项
SpringBoot应用部署到Tomcat中无法启动问题(初识)
参考http://blog.csdn.net/asdfsfsdgdfgh/article/details/52127562     背景 最近公司在做一些内部的小型Web应用时, 为了提高开发效率决定使用SpringBoot, 这货自带Servlet容器,  你在开发Web应用时可以直接在本地像运行控制台应用一样启动,省去了重复部署的时间;配置上相比于SpringMVC也是有了大大的简化...
项目在eclipse运行正常,但单独部署到tomcat上不正常
林正英捉鬼
Tomcat下运行正常,weblogic却报错
项目在本地运行正常,部署到weblogic下却报错,是上传在linux上的文件下载到本地问题,本来以为是FTP问题,然后各种查资料看日志, 还下载了Weblogic debug 运行 发现FTP连接没有问题,却在下载的时候开始报错; 然后无意中在一篇文章中看到说是tomcat和weblogic数据库连接会不一样,tomact会保持连接而weblogic却会断开; 然后在连接数据库那加了代码
linux下部署SpringBoot启动失败问题
1. 问题概要   注:在开发时候为了方便将Tomcat的端口改为了80端口   在Linux部署SpringBoot项目(非ROOT用户)执行 java -jar hemu.jar   出现 *************************** APPLICATION FAILED TO START *************************** Description: T...
关于springboot 打war包 部署tomcat 无法启动报错的问题
springboot 默认是通常是打包成jar的,里面会内置一个tomcat容器 有时候我们需要使用以前打成war包的方式部署到对应的tomcat中, 具体springboot 怎么从jar改成war的打包方式我就不细说了,百度一大把 基本就是pom加一个spring-boot-starter-tomcat 的dependency scope为provided packaging由jar改...
服务里启动CMSTomcat失败并显示:Windows不能在WIN-QJ7MSA1R6GL启动CMSTomcat
服务里启动CMSTomcat失败并显示:    Windows不能在WIN-QJ7MSA1R6GL启动CMSTomcat。有关更多信息,查阅系统事件日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码    1.setclasspath.bat文件,在文件头加入    set JAVA_HOME=E:\Program Files\Java\jdk1.7.0_13    ...
tomcat中运行正常的web项目部署至websphere后,spring无法获取bean
contextConfigLocation classpath:beans-common.xml org.springframework.web.context.ContextLoaderListener
Jenkins 自动化部署springBoot项目但无法正确启动tomcat服务,Jenkins杀死进程问题
在最近的Jenkins新环境搭建过程中,遇到了本想通过Jenkins自带shell实现jar包自动发布、重启Tomcat服务的功能,但服务怎样都无法正确的启动Tomcat。 官方解决方案:BUILD_ID=DONTKILLME        Jenkins wiki解释 在Jenkins中shell顶部增加“BUILD_ID=DONTKILLME”以防止Jenkins发现本进程并杀死。 B...
【idea,maven工程】tomcat部署web工程 无法启动,打成war包可以启动问题
你是否有这样的情况:1.使用idea2.maven工程3.web项目4.使用了tomcat,在启动时项目无法正常访问5.target目录下,没有相应的war包6.使用 maven,install命令打成war包又可使用解决方法:1.选中tomcat,右键,选择Edit configuration2.点击加号,选择Build Artifacts,将相应的war:exploded 打钩重新启动,搞定!...
springboot项目部署到服务器tomcat上,由于logback日志问题启动失败
问题: 在公司测试好的项目包,部署到现场之后,发现项目启动失败。但是日志文件没有打印,查看tomcat中的日志,发现如下错误 项目架构是之前公司大佬制定的,pom文件也是人家写的,定好了用logback那我也不能随意改动,没有办法,只能硬着头皮上了。 思路: 在公司又找了一台服务器来测试,一点问题都没有,正常启动,正常打日志。。。。百思不得其解,两台同样都是redhat6.5的服务器,...
SpringBoot项目打包发布到外部tomcat时,出现各种异常的解决fang
先说遇到问题的情景: 初次尝试使用spring boot框架写了个小web项目,在Intellij IDEA中能正常启动运行。使用maven 运行install,生成war包,发布到本机的tomcat下,出现异常,主要的异常信息是  .......LifeCycleException。经各种搜索,找到答案。 spring boot因为内嵌tomcat容器,所以可以通过打包为ja
springBoot项目部署在linux的Tomcat时,启动Tomcat报错
springBoot项目部署在linux的Tomcat时,启动Tomcat报错 报错信息: 严重: Unable to process Jar entry [module-info.class] from Jar [jar:file:xxxxxT/WEB-INF/lib/log4j-api-2.10.0.jar!/] for annotations org.apache.tomcat.util....
Eclipse.Oxygen+Tomcat8.5部署不成功解决方法(1)
在Oxygen版的Eclipse上搭建完TomCat8.5,通过eclipse启动后,总是没办法通过localhost:8080去访问,但是到Tomcat8.5目录下,通过startup.bat启动又是成功的。 在eclipse启动后,console有这样一个提示: The APR based Apache Tomcat Native library which allows opti
SpringBoot项目打成war包部署到Tomcat
修改pom.xml文件 添加Tomcat依赖包 &amp;amp;amp;lt;dependency&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp;amp;amp;gt;org.springframework.boot&amp;amp;amp;lt;/groupId&amp;amp;amp;gt; &amp;amp;amp;lt;artifactId&amp;amp;amp;gt;spring-boot-s
没有部署项目的tomcat启动失败解决方法
-
解决:sprng boot 项目在IDEA中spring-boot run正常运行,但是打成JAR包之后访问界面返回404
问题描述:    开发spring boot项目,在idea编译器中使用插件spring-boot:run,能够正常访问界面,由于项目需要,要将项目打成JAR 包,然后我就按照maven命令 clean package 打包,之后用java -jar xxxx.jar 命令启动之后,正常启动,但是访问连接返回404错误,问题困扰了我两三天,知道最后看到一个棱长棱长的帖子,终于在最后找到答案,真的要...
tomcat运行正常部署weblogic之后无法正常运行
描述: 本地开发的时候用tomcat启动都是好的,运行也是好的。把tomcat服务器换成weblogic服务器之后启动报错。 一、java.lang.OutOfMemoryError: PermGen space. 解决办法: 把weblogic服务器下的java VM arguments:-Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:Pe
spring-boot项目在外部tomcat环境下部署
spring-boot项目在外部tomcat环境下部署
tomcat7升级到tomcat8 ,项目运行报错
最近的漏洞修补工作有点多,将点点滴滴积累起来还是有必要的。本地运行环境:win10+eclipse mars + jdk1.7+tomcat8.5.20 在本地运行是没有问题的,项目可以正常启动与访问。可以打成war包后放到linux上发布,启动却成了问题。如下:具体问题还是得具体分析,看到xwork-core-2.3.32.jar报错了,想想是升级struts2时,没有将这个包删除。tomcat
本地myeclipse运行正常 部署到Tomcat运行不了
/config/server.xml与本地server.xml文件不一致
Spring Boot打了jar包,启动时报错
springboot出现Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]],也就是tomcat启动不起来,原因:可能是 servlet-api-x.x.jar冲突,原来我在pom.xml中配置了    &amp;lt;dependency&amp;gt;    &amp;lt;groupId&amp;gt;javax.servlet...
Intellij IDEA 使得Web项目在Tomcat中部署运行
二.配置Tomcat 1.Run -> Edit Configurations,进入"Run Configurations"窗口     2.点击 "+" -> Tomcat Server -> Local,创建一个新的Tomcat容器   3.在"Name"处输入新的服务名,点击 "Application server" 后面的 "Configure...",弹出Tomc
关于一个在Intellij Idea中打包正常,tomcat启动也正常,但在浏览器中访问出404的问题的原因分析
我今天在做测试的时候,项目打包正常 ,tomcat启动看起来也是正常,但是在浏览器中访问的时候就出现了404的错误提示,我一开始还以为是项目的问题,但后来想了一下,觉得应该看看tomcat的日志文件,果真一看问题就出来了,还好自己有这个意识,出错了的话,要多看tomcat的日志文件以及自己在程序中写的日志,因为我们的项目经理说了,一旦项目上线了的话,日后排除的话都是靠日志文件的了,可见日志文件对
本地tomcat加载js没问题,但是放到远程上就报404
测试页面,在本地js加载没问题,但是放到服务器上面后,相同目录下,唯独有一个js加载报404,其他的都能正常加载,查看了路径什么的都对,js也确实有,但是就是加载不了。原来的js名字是:jquery.jscrollpane.min.js ,后来改成了jquery.scrollpane.min.js,就是不让 “.”后面出现js。居然就可以了,我表示莫名其妙。
SpringBoot在Eclipse内能够运行,但是部署在Tomcat8上启动时会有一个logback的异常
新开发一个项目,我使用了Springboot作为框架,在项目开发期间我一直使用Eclipse来进行测试,期间一切正常,在近日准备部署到本地的Tomcat8 上供客户端开发的时候发现了这个问题,具体异常如下: 23-May-2017 14:32:20.119 严重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addC
SpringBoot学习-(十六)SpringBoot发布到独立的tomcat中运行
尽管Spring Boot项目会内置一个tomcat,仅只需通过一个简单的指令便可启动项目,但在生产环境下,我们还是习惯将项目发布到第三外的servlet容器中,下面将介绍如果将一个Spring Boot项目部署到第三方tomcat中运行。1)修改工程的打包方式为war2)将spring-boot-starter-tomcat的范围设置为providedspring-boot-starter-tom
将SpringBoot工程部署到外部Tomcat服务器
今天通过bin下面的bat文件启动tomcat,一闪而过,服务一直没起来。后来查了资料,脚本里面需要指定jdk和tomcat的安装目录SET JAVA_HOME=C:\Program Files\Java\jdk1.7.0_67 SET TOMCAT_HOME=D:\apache-tomcat-7.0.64startup.bat和shutdown.bat都要配。平时都是通过Application.j
maven项目编译打包后启动tomcat失败
项目maven隔离后,编译打包,启动tomcat失败,找不到数据库配置文件,可在pom.xml加入以下配置 &amp;lt;resource&amp;gt; &amp;lt;directory&amp;gt;src\main\resources&amp;lt;/directory&amp;gt; &amp;lt;includes&amp;gt; &amp;lt;include&amp;gt;**/*.prop...
在Eclipse中tomcat不部署项目启动正常,部署一个项目启动报异常
console窗口错误输出:严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost
SpringBoot应用部署到Tomcat中无法启动问题
背景 最近公司在做一些内部的小型Web应用时, 为了提高开发效率决定使用SpringBoot, 这货自带Servlet容器, 你在开发Web应用时可以直接在本地像运行控制台应用一样启动,省去了重复部署的时间;配置上相比于SpringMVC也是有了大大的简化。SpringBoot的应用可以直接打成一个可运行的jar包, 你无需发愁为了不同应用要部署多个Tomcat。但是实际部署时你会发
springBoot打包war部署到tomcat接口404, 静态资源不能访问
springBoot项目在IDEA中运行正常, 但是打包成war包部署到tomcat后, 接口不能访问,静态资源也不能访问. 重写application启动类的configure方法后就可以了. @SpringBootApplication @MapperScan(value = &quot;cn.inpan.mapper&quot;) public class WebApplication extends S...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习java的ide ide java 学习