web-dev-qa-db-ja.com

クラスパスでSpring WebApplicationInitializerタイプが検出されない

Eclipseプロジェクトが突然適切にデプロイされなくなりました。環境に対して行った特定の変更を追跡することはできません。

複数のソース管理プロジェクトでテストしましたが、すべて同じように動作しています。

May 01, 2013 12:00:45 PM org.Apache.catalina.core.AprLifecycleListener init
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   (x86)\Java\jdk1.7.0_11\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\NVIDIA     Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows \System32\WindowsPowerShell\v1.0\;.
May 01, 2013 12:00:45 PM org.Apache.Tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.Eclipse.jst.jee.server:fismacm' did not find a matching property.
May 01, 2013 12:00:45 PM org.Apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
May 01, 2013 12:00:45 PM org.Apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
May 01, 2013 12:00:45 PM org.Apache.catalina.startup.Catalina load
INFO: Initialization processed in 296 ms
May 01, 2013 12:00:45 PM org.Apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
May 01, 2013 12:00:45 PM org.Apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.35
May 01, 2013 12:00:46 PM org.Apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jstl/core is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jstl/sql_rt is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jsp/jstl/sql is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jstl/core_rt is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jsp/jstl/core is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jsp/jstl/functions is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jstl/fmt is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.Apache.org/taglibs/standard/permittedTaglibs is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jstl/xml is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.Apache.org/taglibs/standard/scriptfree is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jstl/fmt_rt is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jsp/jstl/fmt is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jsp/jstl/xml is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jstl/xml_rt is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://Java.Sun.com/jstl/sql is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://www.springframework.org/tags/form is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://www.springframework.org/tags is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://www.springframework.org/security/tags is already defined
May 01, 2013 12:00:48 PM org.Apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
May 01, 2013 12:00:48 PM org.Apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
May 01, 2013 12:00:48 PM org.Apache.catalina.core.ApplicationContext log
INFO: Set web app root system property: 'webapp.root' =     [X:\workspace\.metadata\.plugins\org.Eclipse.wst.server.core\tmp0\wtpwebapps\fismacm\]
May 01, 2013 12:00:48 PM org.Apache.catalina.core.ApplicationContext log
INFO: Initializing log4j from [X:\workspace\.metadata\.plugins\org.Eclipse.wst.server.core\tmp0\wtpwebapps\fismacm\WEB-    INF\log4j.properties]
May 01, 2013 12:00:48 PM org.Apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
May 01, 2013 12:00:49 PM org.Apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
May 01, 2013 12:00:49 PM org.Apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
May 01, 2013 12:00:49 PM org.Apache.catalina.startup.Catalina start
INFO: Server startup in 3898 ms

これは重要なコンポーネントのようです:情報:クラスパスでSpring WebApplicationInitializerタイプが検出されませんでした。

プロジェクトのクリーンアップ、サーバーの再定義、さらにはまったく新しいワークスペースの作成を試みました。私は明らかにマークを逃しました。

これをクリーンアップするためのヒントは大歓迎です。

16
Raevik

これは愚かなエラーであることが判明しました。 log4jは、エラー出力をキャプチャするように構成されていません。私はバックグラウンドで設定エラーを投げていましたが、それらを修正したら、行ってよかったし、リクエストのマッピングはうまくいきました。

11
Raevik

私はこれに何時間も費やし、解決策は次のとおりでした:

  • Tomcatを停止します
  • 「プロジェクト」メニュー->クリーン->すべてのプロジェクトをクリーン
  • サーバータブ-> Tomcat->右クリック->クリーン...
  • プロジェクトを右クリック->実行->サーバーで実行
14
Adrian Smith

Mavenを使用している場合は注意してください。フォルダーの構造must正しい。

Mavenを使用する場合、WEB-INFディレクトリはwebapp内にある必要があります。

src/main/webapp/WEB-INF
7
Rafael Delbel

情報:クラスパスで検出されたSpring WebApplicationInitializerタイプはありません。

EclipseでMavenを使用していて、WARを使用してデプロイしている場合にも表示されます。

(Eclipse、Kepler、M2を使用)

(プロジェクトを右クリック)->実行->サーバーで実行

m2e-wtpフォルダーとコンテンツの生成と削除にかかっています。

Maven Archiveで生成されたビルドディレクトリの下のファイルがチェックされていることを確認してください。

下:「ウィンドウ->設定-> Maven-> Java EE Integration」

次に:

M2を使用して、ビルドを実行します。つまり、通常のClean-> packageまたはInstall etc ...

「プロジェクト->自動ビルド」が選択されていない場合。実行することにより、「m2e-wtpフォルダーとコンテンツ」の生成を強制できます。

"(プロジェクトを右クリック)-> Maven->プロジェクトの更新..."

注:[プロジェクトのクリーンアップ]オプションが選択されていないことを確認してください。そうしないと、ターゲット/クラスのコンテンツが削除され、元のクラスに戻ります。

また、いつ

プロジェクト->自動的にビルド」を選択すると、「m2e-wtpフォルダーとコンテンツ」が生成されます

または「プロジェクト->すべてビルド

または "(プロジェクトを右クリック)->プロジェクトのビルド"

4

WebApplicationInitializerは、クラスの1つに実装できるインターフェイスです。サーブレット仕様3を使用し、web.xmlにmetadata-complete = "false"属性がある限り、Springは起動時にこのクラスをスキャンします。しかし、それは問題ではないようです。私が理解できる唯一のエラーは、欠落しているslf4j-log4j12.jarです。

2
Stefan

私も同じ問題を抱えていました。私のMavenにはTomcat7プラグインがありましたが、JRE環境は1.6でした。 Tomcat7をTomcat6に変更しましたが、エラーはなくなりました。

1
Akshay

xmlがWEB-INFフォルダーになかったため、このエラーが発生したのは、web.xmlおよびxxx-servlet.xmlがwebappフォルダーではなくWEB_INFフォルダー内にあることを確認してください。

0
Vishal jotshi

テスト中のTomcat-maven-plugin

Tomcatは通常、src/test/Javaのクラスをクラスパスに追加しません。スコープテストでTomcatを実行すると、これらは失われます。 Tomcatがテストでクラスを尊重するようにするには、-Dmaven.Tomcat.useTestClasspath=trueを使用するか、追加します

<properties>
   <maven.Tomcat.useTestClasspath>true</maven.Tomcat.useTestClasspath>
</properties>

あなたのpom.xmlに。

0
Peter Rader

愚かなエラーが発生し、解決するのに恥ずかしいほど長い時間がかかりました.... pom.xmlを確認してください...

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<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>

問題は私のパッケージ名でした。動作するためには、「com.outbottle」(そしてconfig/controllers/model/etc)でなければなりません。上記でわかるように、Maven(初めて)、Spring、1.8 JDKを使用し、この問題をデバッグするストロークがほぼありました。すべてGlassfishで実行されています(Tomcatは上記のpom設定でも大丈夫です)。そうは言っても、私は今、自分自身に満足しており、春の学習曲線の次のステップのためにMavenとSpringをよりよく知っています。これがあなたにも役立つことを願っています!

0
John Mulhall

STSのワークスペースの下にメタデータフォルダーがあります。 C:\ Users\firstname.lastname\Documents\workspace-sts-3.9.2.RELEASE.metadataの下の.logファイルに実際のエラーが表示されます。

0
8080_HouseFull