4

サーブレットをTomcatで実行してテストしようとしています。ただし、上記のエラーが発生します(このエラーが発生することもありますが、以前はサーブレットは正常に実行されていました)。いくつかの事実:

  1. 私は、この同様の問題によって与えられた説明、およびこことここを徹底的に調べまし

  2. (Eclipseの[サーバー]タブ内から)Tomcatを再起動しようとすると、コンソールからエラーログが表示されます。

「重大:アクセスログファイル[〜\ Tomcat 7.0 \ logs \ localhost_access_log.2012-07-12.txt]を開くことができませんでした」と、ログ出力の最後に「INFO:SessionListener:sessionDestroyed('E9A6117FDF54752D80A1B9B72F2B83D3')」があります。 -このテキストの下部にある詳細情報を参照してください

  1. 「C:\ ProgramFiles \ Apache Software Foundation \ Tomcat 7.0 \ logs」にあるログファイルを確認しましたが、上記の項目(2)と同様の内容のファイルはありません。

  2. 私はEclipseを介してアプリケーションを「デプロイ」し(つまり、開発中はEclipseに依存してTomcatを起動します)、プロジェクトの安定バージョンがある場合にのみ、適切なJavaクラスファイルをTomcatの/webapps/にコピーして実際のデプロイを行います。 WEB-INF/classesフォルダーとTomcatの再起動

そして最も重要なのは、5。「http:// localhost:8080」と入力するとTomcatホームページに移動します(サーバーが実行されていると確信しています)が、「http:// localhost:8080 / MyProjectName/MyServlet」と入力するとブラウザでこの質問のタイトルに表示されるエラーが発生します。

何かアイデア/ヘルプはありますか?どうもありがとうございます!

ここでエラーログの詳細を参照してください

>!Jul 12, 2012 6:18:18 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\Java\jdk1.7.0\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Users\Kiptoo\introcs\java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\Program Files\MiKTeX 2.8\miktex\bin;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Matlab\R2010a\runtime\win32;C:\Program Files\Matlab\R2010a\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\QuickTime\QTSystem;C:\Users\Kiptoo\introcs\bin;C:\Users\Kiptoo\introcs\java\bin;C:\Python27;C:\Program Files\Eclipse;;.
Jul 12, 2012 6:18:20 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jul 12, 2012 6:18:20 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jul 12, 2012 6:18:20 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2050 ms
Jul 12, 2012 6:18:20 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jul 12, 2012 6:18:20 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.25
Jul 12, 2012 6:18:20 PM org.apache.catalina.valves.AccessLogValve open
SEVERE: Failed to open access log file [C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt]
java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt (Access is denied)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
    at org.apache.catalina.valves.AccessLogValve.open(AccessLogValve.java:1115)
    at org.apache.catalina.valves.AccessLogValve.startInternal(AccessLogValve.java:1222)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:185)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1144)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1568)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1558)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

Jul 12, 2012 6:18:20 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\AndroidTest
Jul 12, 2012 6:18:20 PM org.apache.catalina.core.StandardContext postWorkDirectory
WARNING: Failed to create work directory [C:\Program Files\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\AndroidTest] for context [/AndroidTest]
Jul 12, 2012 6:18:21 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [175] milliseconds.
Jul 12, 2012 6:18:21 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: C:\Program Files\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\AndroidTest is unusable.
Jul 12, 2012 6:18:21 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\docs
Jul 12, 2012 6:18:21 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\examples
Jul 12, 2012 6:18:21 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Jul 12, 2012 6:18:21 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Jul 12, 2012 6:18:21 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@ff8399')
Jul 12, 2012 6:18:21 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\host-manager
Jul 12, 2012 6:18:22 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\manager
Jul 12, 2012 6:18:22 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT
Jul 12, 2012 6:18:22 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jul 12, 2012 6:18:22 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jul 12, 2012 6:18:22 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2225 ms
Jul 12, 2012 6:19:22 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: sessionDestroyed('E9A6117FDF54752D80A1B9B72F2B83D3')
4

1 に答える 1

3

適切なJavaクラスファイルをTomcatの/webapps/ WEB-INF / classesフォルダーにコピーし、Tomcatを再起動して、プロジェクトの安定バージョンがある場合にのみ、実際のデプロイメントを実行します。

すぐに停止します。ファイルを入れたりwebapps/WEB-INF、そこから何か良いものが生まれることを期待したりしないでください。WARファイルやexploded-WAR構造などの広く受け入れられているパッケージを使用して、Webアプリケーションを適切にデプロイします。

第二に、問題は明らかです:java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt (Access is denied)。Tomcatはそのファイルに書き込めません。あなたが管理者であるからといって、Tomcatがそのディレクトリに書き込めるという意味ではありません。Tomcatは私の知る限りUACとうまく連携せず、Program Files一般的に醜いUIクレデンシャルエントリハックを必要とする書き込みを試みています。

したがって、ファイル(およびディレクトリ)のアクセス許可を確認してください。Tomcatプロセスのuidを確認します。それらがすべて正常であることを確認します。最後に、andを使用CATALINA_HOMEしてCATALINA_BASE(その方法についてはドキュメントを読んでください)、すべてのアクセス許可の問題を修正することを検討してください。

于 2012-07-13T01:28:02.603 に答える