信息:没有在tomcat 8上的类路径上检测到Spring WebApplicationInitializer类型

时间:2015-12-14 10:22:38

标签: java tomcat

我正在尝试在tomcat 8上部署一个java Web应用程序。战争建立在jdk 1.8上。当我看到catalina.log时,我看到应用程序已部署且服务器已成功启动。 但是在localhost.log中我看到了这条消息 2015年12月14日12:10:42.774 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log没有在类路径上检测到Spring WebApplicationInitializer类型

此外,当我点击应用网址时,我无法启动欢迎页面。日志中没有其他错误。 如果我遗失任何东西,有人可以告诉我。

由于 Arpit

1 个答案:

答案 0 :(得分:0)

我遇到了一个愚蠢的错误,我花了很长时间才解决....查看我的pom.xml ......

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd">     4.0.0

<groupId>com.outbottle</groupId>
<artifactId>PersonalDetailsMVC</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

<name>PersonalDetailsMVC</name>

<properties>
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.version>4.0.1.RELEASE</spring.version>
    <jstl.version>1.2</jstl.version>
    <javax.servlet.version>3.0.1</javax.servlet.version>
</properties>

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

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

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

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

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

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

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <compilerArguments>
                    <endorseddirs>${endorsed.dir}</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${endorsed.dir}</outputDirectory>
                        <silent>true</silent>
                        <artifactItems>
                            <artifactItem>
                                <groupId>javax</groupId>
                                <artifactId>javaee-endorsed-api</artifactId>
                                <version>7.0</version>
                                <type>jar</type>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

  

问题是我的包裹名称。检查后:

a)IDE中的运行时软件包名称(对我来说是Netbeans),以查看我的运行时源是否是针对POM的1.8kjdk

b)仔细检查POM(pom.xml)以确保它具有注释(3.0+)和Spring依赖项的Javax servlet配置

c)双重检查我的WebInitializer.java(实现WebApplicationInitializer(而不是web.xml))语法正确

d)仔细检查我的Config.java文件以确保它正确地重载了​​addResourceHandlers(ResourceHandlerRegistry注册表)并且setupViewResolver()的bean是正确的

e)仔细检查我的文件夹结构以确保其正确并且编程流程看起来连贯

f)删除并重新部署Glassfish以查看是否有任何改变

然后我发现我的问题是:

  

f)&#34; com.trainer.config&#34;是错的!它必须是&#34; com.outbottle&#34; (然后   config / controllers / model / etc)让它工作。如上所示,我   使用Maven(第一次),Spring,1.8 JDK和几乎有一个   中风调试这个问题。所有在Glassfish上运行(Tomcat都可以   对于上面的pom配置也是如此)。那就是说,我对自己都很满意   现在,知道Maven和Spring对我的下一步更好了   春天的学习曲线。希望这也有助于你!