gpt4 book ai didi

spring - WebApplicationInitializer 未加载

转载 作者:行者123 更新时间:2023-12-01 03:27:04 25 4
gpt4 key购买 nike

我正在使用 maven 创建一个 spring mvc 应用程序。它使用 WebApplicationInitializer 进行初始化。现在我正在尝试添加 hibernate 依赖项。当我添加它时,不会调用 WebApplicationInitializer 的 onStartup。我正在使用 tomcat 7。即使我删除了 hibernate 依赖项并更新项目,问题仍然存在。可能是什么问题?

pom.xml

<project    xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>com.pdma</groupId>
<artifactId>dmapp</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>dmapp Maven Webapp</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.framework.version>4.3.1.RELEASE</spring.framework.version>
<jackson-version>2.7.5</jackson-version>
<javax-servlet-api-version>3.1.0</javax-servlet-api-version>
<javax-servlet-jstl-version>1.2</javax-servlet-jstl-version>
<maven-compiler-plugin-version>3.2</maven-compiler-plugin-version>
<maven-war-plugin-version>2.4</maven-war-plugin-version>
<source-jdk>1.7</source-jdk>
<target-jdk>1.7</target-jdk>
<war-source-directory>src/main/webapp</war-source-directory>
<war-name>dmapp</war-name>
<final-name>dmapp</final-name>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.framework.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.framework.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.framework.version}</version>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.6.Final</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-version}</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax-servlet-api-version}</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${javax-servlet-jstl-version}</version>
</dependency>

</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin-version}</version>
<configuration>
<source>${source-jdk}</source>
<target>${target-jdk}</target>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${maven-war-plugin-version}</version>
<configuration>
<warSourceDirectory>${war-source-directory}</warSourceDirectory>
<warName>${war-name}</warName>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
<finalName>${final-name}</finalName>
</build>

</project>

应用程序配置文件
package com.pdma.dmapp.configuration;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.pdma.dmapp")
public class AppConfig extends WebMvcConfigurerAdapter{

@Override
public void configureViewResolvers(ViewResolverRegistry registry){
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
registry.viewResolver(viewResolver);
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
registry.addResourceHandler("/angularApps/**").addResourceLocations("/angularApps/");
}

}

应用初始化程序
package com.pdma.dmapp.configuration;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class AppInitializer implements WebApplicationInitializer{

public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(AppConfig.class);
ctx.setServletContext(container);

ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.setLoadOnStartup(1);
servlet.addMapping("*.html");
servlet.addMapping("*.htm");
servlet.addMapping("*.ajax");
}

}

WebApplication 未初始化时的控制台
Nov 15, 2016 7:57:47 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:dmapp' did not find a matching property.
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version: Apache Tomcat/8.0.28
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Oct 7 2015 18:25:21 UTC
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 8.0.28.0
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 10
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 10.0
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Program Files\Java\jre1.8.0_101
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_101-b13
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: E:\PDMA\dev\workingCopy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: E:\Resources\tomcat\apache-tomcat-8.0.28
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=E:\PDMA\dev\workingCopy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=E:\Resources\tomcat\apache-tomcat-8.0.28
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=E:\PDMA\dev\workingCopy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=E:\Resources\tomcat\apache-tomcat-8.0.28\endorsed
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Nov 15, 2016 7:57:47 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_101\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_101/bin/server;C:/Program Files/Java/jre1.8.0_101/bin;C:/Program Files/Java/jre1.8.0_101/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MySQL Utilities 1.5\;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MySQL Utilities 1.5\Doctrine extensions for PHP\;C:\Users\user\AppData\Local\Microsoft\WindowsApps;;C:\eclipse;;.
Nov 15, 2016 7:57:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Nov 15, 2016 7:57:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Nov 15, 2016 7:57:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Nov 15, 2016 7:57:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Nov 15, 2016 7:57:47 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 793 ms
Nov 15, 2016 7:57:47 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Nov 15, 2016 7:57:47 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.28
Nov 15, 2016 7:57:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Nov 15, 2016 7:57:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Nov 15, 2016 7:57:48 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 380 ms

WebApplicationInitializer 启动时的控制台
Nov 15, 2016 7:48:35 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:dmapp' did not find a matching property.
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version: Apache Tomcat/8.0.28
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Oct 7 2015 18:25:21 UTC
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 8.0.28.0
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 10
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 10.0
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Program Files\Java\jre1.8.0_101
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_101-b13
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: E:\PDMA\dev\workingCopy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: E:\Resources\tomcat\apache-tomcat-8.0.28
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=E:\PDMA\dev\workingCopy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=E:\Resources\tomcat\apache-tomcat-8.0.28
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=E:\PDMA\dev\workingCopy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=E:\Resources\tomcat\apache-tomcat-8.0.28\endorsed
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Nov 15, 2016 7:48:35 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_101\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_101/bin/server;C:/Program Files/Java/jre1.8.0_101/bin;C:/Program Files/Java/jre1.8.0_101/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MySQL Utilities 1.5\;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MySQL Utilities 1.5\Doctrine extensions for PHP\;C:\Users\user\AppData\Local\Microsoft\WindowsApps;;C:\eclipse;;.
Nov 15, 2016 7:48:35 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Nov 15, 2016 7:48:35 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Nov 15, 2016 7:48:35 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Nov 15, 2016 7:48:35 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Nov 15, 2016 7:48:35 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1005 ms
Nov 15, 2016 7:48:35 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Nov 15, 2016 7:48:35 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.28
Nov 15, 2016 7:48:36 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Nov 15, 2016 7:48:37 PM org.apache.catalina.core.ApplicationContext log
INFO: 1 Spring WebApplicationInitializers detected on classpath
Nov 15, 2016 7:48:37 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'dispatcher'
Nov 15, 2016 7:48:37 PM org.springframework.web.servlet.DispatcherServlet initServletBean
INFO: FrameworkServlet 'dispatcher': initialization started
Nov 15, 2016 7:48:37 PM org.springframework.web.context.support.AnnotationConfigWebApplicationContext prepareRefresh
INFO: Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Tue Nov 15 19:48:37 PKT 2016]; root of context hierarchy
Nov 15, 2016 7:48:37 PM org.springframework.web.context.support.AnnotationConfigWebApplicationContext loadBeanDefinitions
INFO: Registering annotated classes: [class com.pdma.dmapp.configuration.AppConfig]
Nov 15, 2016 7:48:38 PM org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler
INFO: Mapped URL path [/resources/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
Nov 15, 2016 7:48:38 PM org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler
INFO: Mapped URL path [/angularApps/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
Nov 15, 2016 7:48:38 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register
INFO: Mapped "{[/surveys/uploadSurvey],methods=[GET]}" onto public java.lang.String com.pdma.dmapp.module.surveys.controller.SurveysController.getSurveyExcel(org.springframework.ui.ModelMap)
Nov 15, 2016 7:48:38 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
INFO: Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcher-servlet': startup date [Tue Nov 15 19:48:37 PKT 2016]; root of context hierarchy
Nov 15, 2016 7:48:38 PM org.springframework.web.servlet.DispatcherServlet initServletBean
INFO: FrameworkServlet 'dispatcher': initialization completed in 1761 ms
Nov 15, 2016 7:48:39 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Nov 15, 2016 7:48:39 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Nov 15, 2016 7:48:39 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3486 ms
Nov 15, 2016 7:48:39 PM org.springframework.web.servlet.PageNotFound noHandlerFound
WARNING: No mapping found for HTTP request with URI [/dmapp/] in DispatcherServlet with name 'dispatcher'

最佳答案

我按照以下链接创建了 tomcat 服务器,现在它运行良好。

http://websystique.com/misc/how-to-setup-tomcat-with-eclipse/

如果有人可以解释这与简单地创建一个 tomcat 服务器并在不修改位置等的情况下运行它有何不同?

更新:

事实证明,在您更新 pom.xml 并更新 maven 项目后,eclipse 会从类路径中删除 maven 依赖项……再次添加它们是正确的解决方案。

关于spring - WebApplicationInitializer 未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40609121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com