0

申し訳ありませんが、私は Eclipse と Java サーブレットの初心者です。この質問を読みました Eclipse は Maven Web プロジェクトを「動的 Web アプリケーション」としてインポートできますか? 、それは私にとって本当に役に立ちました。

プロジェクトを既存のmavenプロジェクトとしてインポートしました。 ここに画像の説明を入力

プロジェクトのファセットを変更しました (ただし、動的 ​​Web モジュールのバージョンに問題があったため、2.5 に変更しました)、「サーバーで実行」オプションを使用できるようになりました。私はtomcat6を使用しています。

しかし、web.xml の場所にいくつかの問題がありました。インポートしたプロジェクト web.xmlファイルが含まれていてroot/src/main/webapp/WEB-INF 、Eclipse がそのファイルを見つけられなかったroot/WebContent/WEB-INF ため、いくつかの変更web.xmlファイルが検出された後、いくつかのサーブレットが表示されました。

ここに画像の説明を入力

しかし、サーブレットを実行しようとすると、同様のエラーが表示されます

javax.servlet.ServletException: Wrapper cannot find servlet class com.games.GulliverTravel.servlets.InitializeGameServlet or a class it depends on
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Thread.java:680)
root cause

java.lang.ClassNotFoundException: com.games.GulliverTravel.servlets.InitializeGameServlet
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Thread.java:680)

私のpomファイルがあります

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>ProjectName</groupId>
  <artifactId>ProjectName</artifactId>
  <packaging>war</packaging>
  <version>1.0</version>
  <name>ProjectName Backend</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>1.3.1</version>
        <scope>compile</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>ProjectName</finalName>
  </build>
</project>

以前に別のコンピューターでこれを行ったときはすべて問題なく、問題なく正しくインポートされたため、なぜそれが起こるのか理解できません。私を助けてください。web.xml ファイルの場所の変更に関連できますか? これらの問題を解決する方法はありますか? ありがとうございました。

更新: また、プロジェクトのクローンを作成したリポジトリには .project ファイルがありません。クラス、web.xml、および pom ファイルのみがあります。

4

1 に答える 1

0

既存のmavenプロジェクトをインポートするのは正しいオプションIMOです

これにより、ソース/テスト フォルダー構造が失われず、Maven を使用してビルドを続行できるようになります。

または mvn eclipse:eclipse、コマンド ラインでコマンドを使用して、Eclipse 固有のファイルを生成することもできます。

于 2013-01-17T11:12:43.807 に答える