建立了一个maven项目,打成了war包但是启动时一直都无法注入

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mainController': Unsatisfied dependency expressed through field 'mainService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ssit.base.service.IMainService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:171)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1227)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1140)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1027)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5038)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5348)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ssit.base.service.IMainService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
    ... 31 more

 

后来检查了一下spring-mvc文件

将原来的<!-- 配置包扫描位置 -->

改为:<context:annotation-config />

从起项目问题得到解决;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要将Maven项目打成WAR,可以按照以下步骤进行操作: 1. 在Maven项目的pom.xml文件中,添加以下配置: ``` <packaging>war</packaging> ``` 2. 在Maven项目的根目录下,执行以下命令: ``` mvn clean package ``` 3. 执行完上述命令后,会在target目录下生成一个WAR文件,可以将该文件部署到Web容器中。 希望这些步骤能够帮助您将Maven项目打成WAR。 ### 回答2: Maven是一款Java项目管理工具,可以用来自动化构建、依赖管理和项目部署等任务。而WAR(Web Application Resource)则是一种Java Web应用程序的打格式,可以将Java Web应用程序的所有相关文件打一个单独的文件。 在使用Maven构建Java Web项目时,我们可以将项目打成WAR方便部署和发布。以下是使用Maven将Java Web项目打成WAR的具体步骤: 1. 在pom.xml文件中声明项目型为WAR型: ``` <packaging>war</packaging> ``` 2. 配置Maven插件:maven-war-plugin ``` <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> <configuration> <webXml>src/main/webapp/WEB-INF/web.xml</webXml> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>war</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 3. 执行Maven命令 在项目根目录中执行以下命令: ``` mvn clean package ``` 执行完上述步骤后,Maven会将Java Web项目打成WAR,生成在target目录下。可以部署WAR到Tomcat等Web容器中。 总之,使用Maven将Java Web项目打成WAR可以方便项目部署和发布,具体实现可通过在pom.xml文件中声明WAR型,配置Maven插件,执行Maven命令实现。 ### 回答3: Maven是一种流行的项目构建工具,可以帮助开发人员自动化构建和管理Java项目。而WAR是一种用于部署Java Web应用程序的标准文件格式。通过将Maven项目WAR,可以将项目部署到各种Web容器中,如Tomcat、Jetty和WebSphere等。 下面是如何将Maven项目WAR的简单步骤: 1. 配置Maven插件 Maven一个称为Maven WAR插件的插件,用于打WAR文件。要在项目中使用此插件,请在项目的pom.xml文件中添加以下配置: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.3</version> <configuration> <warSourceDirectory>src/main/webapp</warSourceDirectory> </configuration> </plugin> </plugins> </build> 2. 构建项目 现在可以运行Maven命令来构建项目。在项目目录中打开命令行窗口,然后键入以下命令: mvn clean package 这将使用Maven构建项目并在目标目录中生成WAR文件。 3. 部署WAR 生成的WAR文件现在可以在任何支持Java Web程序部署的Web容器中部署。 将WAR文件复制到Web容器的webapps目录下,然后启动Web容器。 WAR文件将自动展开并成为Web应用程序。 以上就是将Maven项目WAR的简单步骤。这使得开发人员更容易将项目部署到Web容器中。Maven的模块和依赖项管理功能也可以更好地帮助开发人员管理复杂的Java项目
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值