2

Eclipse 内で Tomcat 7 を使用してデバッグする Maven プロジェクトがあります。問題は、pom.xml ファイルに最小限の変更 (Maven プラグインのバージョンの変更や構成プロパティの追加など) を加えると、サーバーが適切に起動しなくなることです。私が何を変えるかは本当に問題ではありません。「Debug As」でサーバーを起動すると、Apache Click と Shiro が起動しなくなり、localhost にアクセスすると、Tomcat による 404 メッセージが表示されます。面白いことに、変更を元に戻しても問題は解決しません。唯一役立つのは、プロジェクト全体の GIT -> Replace With コマンドです。

編集: pom.xml で何も変更せずに Maven -> Update Project を実行しても、問題があることがわかりました。

すべてが正常に動作する場合の変更前のログ ファイルは次のとおりです。

Nov 15, 2012 10:28:10 AM 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\Java\jdk1.7.0\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk1.7.0\jre\bin;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin/client;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin;C:/Program Files/Java/jdk1.7.0/bin/../jre/lib/i386;C:\Program Files\Java\jdk1.7.0\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\apache-maven-3.0.4\bin;C:\Program Files\Java\jdk1.7.0\bin;C:\Program Files\Eclipse JEE Indigo;;.
Nov 15, 2012 10:28:12 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:testproject' did not find a matching property.
Nov 15, 2012 10:28:12 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Nov 15, 2012 10:28:12 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Nov 15, 2012 10:28:12 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2201 ms
Nov 15, 2012 10:28:12 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Nov 15, 2012 10:28:12 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
Nov 15, 2012 10:28:13 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(D:\Data\Programming\Eclipse Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testproject\WEB-INF\lib\servlet-api-1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Nov 15, 2012 10:28:13 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(D:\Data\Programming\Eclipse Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testproject\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
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.
Nov 15, 2012 10:28:13 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Shiro environment
[Click] [info ] ***  Initializing Click 2.3.0 in development mode  ***
[Click] [info ] initialized LogService: org.apache.click.service.ConsoleLogService
[Click] [info ] found jar: file:/D:/Data/Programming/Eclipse%20Workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/testproject/WEB-INF/lib/click-nodeps-2.3.0.jar
[Click] [info ] Click 2.3.0 initialized in development mode
Nov 15, 2012 10:28:14 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Nov 15, 2012 10:28:14 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Nov 15, 2012 10:28:14 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2076 ms
[Click] [info ] handleRequest:  /index.htm - 57 ms

これは、pom ファイルに最小限の変更を加えた後のログです。

Nov 15, 2012 10:25:23 AM 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\Java\jdk1.7.0\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk1.7.0\jre\bin;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin/client;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin;C:/Program Files/Java/jdk1.7.0/bin/../jre/lib/i386;C:\Program Files\Java\jdk1.7.0\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\apache-maven-3.0.4\bin;C:\Program Files\Java\jdk1.7.0\bin;C:\Program Files\Eclipse JEE Indigo;;.
Nov 15, 2012 10:25:24 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:testproject' did not find a matching property.
Nov 15, 2012 10:25:24 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Nov 15, 2012 10:25:24 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Nov 15, 2012 10:25:24 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 570 ms
Nov 15, 2012 10:25:24 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Nov 15, 2012 10:25:24 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
Nov 15, 2012 10:25:39 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Nov 15, 2012 10:25:39 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Nov 15, 2012 10:25:39 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 14905 ms

ここで何が起こっているのか誰か説明できますか? ヒントに感謝します!

4

1 に答える 1

0

私は Maven で Tomcat6 を使用していますが、Eclipse でも同様の問題があります。時々、Tomcat が動かなくなって、構成済みのプロジェクトが完全に見えなくなっているように見えます。

このことが起こったとき、私はこの手順を試して、そのうちの1つがすでに問題を解決しているかどうかを常にテストします.

  1. Maven -> プロジェクトの更新
  2. プロジェクト上で F5 キーを押します (通常、この時点で機能します)。
  3. Tomcat をクリーンアップする
  4. プロジェクトをクリーンアップします (プロジェクト > クリーン)
  5. プロジェクトを削除し (サーバー上で右ボタン > [追加と削除])、保存して再度追加します。

それはあなたのserver.xmlですか?あなたのプロジェクトは Web アプリケーションですか?

残念ながら、この種の問題が発生する理由はわかりませんが、Tomcat のキャッシュの問題は Maven の問題よりもはるかに多いようです。とにかく毎日時間がかかる問題です。

于 2013-03-26T05:01:58.093 に答える