2

私は、vogella.comの Eclipse WTP を使用したサーブレットと JSP の開発を追跡してきました。Tomcat 7 をインストールし、コード (単純なデータ アクセス オブジェクトと単純な HpptServlet) をコピーして貼り付け、Eclipse からサーバーを起動しました。

Web で開くhttp://localhost:8080/de.vogella.wtp.filecounter/FileCounterと、期待される結果は次のようになります。

ここに画像の説明を入力

しかし、404 エラーが発生しました。

ここに画像の説明を入力

そして、コンソールのこのエラーログ:

Sep 15, 2013 7:27:09 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: /Users/adamatan/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
Sep 15, 2013 7:27:09 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:de.vogella.wtp.filecounter' did not find a matching property.
Sep 15, 2013 7:27:09 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Sep 15, 2013 7:27:09 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Sep 15, 2013 7:27:09 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 525 ms
Sep 15, 2013 7:27:09 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 15, 2013 7:27:09 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
Sep 15, 2013 7:27:09 PM org.apache.catalina.core.StandardContext resourcesStart
SEVERE: Error starting static Resources
java.lang.IllegalArgumentException: Document base /Users/adamatan/Personal/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/de.vogella.wtp.filecounter does not exist or is not a readable directory
    at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:138)
    at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:5055)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5235)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    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:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)

Sep 15, 2013 7:27:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error in resourceStart()
Sep 15, 2013 7:27:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error getConfigured
Sep 15, 2013 7:27:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/de.vogella.wtp.filecounter] startup failed due to previous errors
Sep 15, 2013 7:27:09 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Sep 15, 2013 7:27:09 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Sep 15, 2013 7:27:09 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 255 ms

関連情報:

  • Tomcat はコマンド ラインから正常に実行されます ( catalina run)。
  • 同時に実行される Tomcat のインスタンスは 1 つだけです。
  • Eclipse から他の Tomcat サーブレットを実行することはできませんでした。

Tomcat が単純なサーブレットを実行していないのはなぜですか?

更新:OSXを使用しています

4

2 に答える 2

2

独自のユーザーを使用して tomcat を実行していると思われます (UNIX システムではよくあることです)。また、そのユーザーにはホーム ディレクトリへの読み取り権限がありません/Users/adamatan

次に、ユーザーが属するグループに tomcat ユーザーを追加してみてください。

この質問で説明されているように、サーバーの場所をEclipseが書き込みアクセス権を持ち、Tomcatユーザーが読み取りアクセス権を持つ場所に変更してみてください。

編集

実際にはウィザードの設定です。最初のページで(デフォルト)以上Dynamic Web Projectを選択すると、最後のページでチェックボックスがデフォルトで無効になります。2.5 以下を選択すると、デフォルトで有効になります。実際に使用している tomcat とは関係ありません。ただし、注釈を使用する場合は、サーブレット仕様 3.0 を備えた tomcat 7 が必要です。Dynamic web module version 3.0Generate web.xml deployment descriptor

于 2013-09-15T18:58:36.590 に答える
0

Tomcat 6 のチュートリアルで、Tomcat 7 を使用していました。

Eclipse はweb.xml、Java コード内の注釈を想定していたため、ファイルを作成しませんでした。チュートリアル コードには注釈が含まれていなかったため、サーバーはサーブレットなしで起動しました。

于 2013-09-16T08:06:07.327 に答える