12

このHOWTOのように、EclipseでGWTホストモードを機能させようとしています。サーブレットは私のGWTコードと同様に正常に機能しますが、次のようなエラーが発生するため、すべてのJSPが失敗します。

[WARN] /view/lniExecutiveSummary.htm
org.apache.jasper.JasperException: /WEB-INF/jsp/lni/lniExecutiveSummary.jsp(1,1) The absolute uri: http://java.sun.com/jsp/jstl/fmt cannot be resolved in either web.xml or the jar files deployed with this application
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
    [ trimmed ]

このWebアプリは、Tomcat5xでデプロイすると正常に機能します。Eclipseで実行しているときにtaglibsを解決することができないようです。私はEclipseを初めて使用しますが、GWT + Mavenに必要なすべての可動部分でEclipseを機能させると、髪の毛を抜くことができます。

更新:私はもはやEclipseを使用していません。Intellij IDEAに切り替えました(戻ってきました!)。ですから、親切な人たちが投稿した答えを正直に評価することはできません。何らかの投票アクションが発生した場合、または他の誰かがこれらの方法のいずれかで成功を報告した場合、私は適切な回答を受け入れます。ありがとう。

4

4 に答える 4

1

Eclipse プロジェクトのクラスパスに Jar ファイルを追加します。このファイル tomcat lib が既にある場合。このオプションはあなたのために働きます。2 番目のオプションは、Eclipse Web プロジェクトがある場合、Web-Inf lib フォルダーに jar を追加することです。

于 2010-10-22T06:46:07.180 に答える
1

あなたの痛みが分かります。gwt、maven、およびEclipseを連携させようとして、同じ苦痛を経験しました。

次のpom.xmlを使用して、mavenで動作させることができました。この方法を使用mvn gwt:runしてホスト モードで実行できますが、残念ながら、mvn gwt:eclipseEclipse 起動ランタイム構成を生成するための mvn の目標を機能させることができませんでした。

これが私の pom.xml からの関連するスニペットです。gwt を別の場所にインストールし、mvn がリポジトリから gwt をダウンロードする代わりに、それを使用するように指示する方が簡単であることに注意してください。mvn 依存関係の「システム」レベルのスコープが、これを実現します。

  <properties>

      <!-- convenience to define GWT version in one place -->
      <gwt.version>1.7.1</gwt.version>
      <google.webtoolkit.home>${env.GWT_HOME}</google.webtoolkit.home>

      <!--  tell the compiler we can use 1.5 -->
      <maven.compiler.source>1.6</maven.compiler.source>
      <maven.compiler.target>1.6</maven.compiler.target>      

  </properties>

  <dependencies>

      <!--  GWT dependencies (from central repo) -->
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-servlet</artifactId>
      <version>${gwt.version}</version>
      <scope>system</scope>
      <systemPath>${env.GWT_HOME}/gwt-servlet.jar</systemPath>
    </dependency>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-user</artifactId>
      <version>${gwt.version}</version>
      <scope>system</scope>
      <systemPath>${env.GWT_HOME}/gwt-user.jar</systemPath>
    </dependency>

    ... other dependencies...
  </dependencies>

  <build>
    <outputDirectory>war/WEB-INF/classes</outputDirectory>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>1.1</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>generateAsync</goal>
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
            <runTarget>com.gwt.example/Application.html</runTarget>
            <extraJvmArgs>-Xmx512m</extraJvmArgs>
        </configuration>
      </plugin>
      <!--
          If you want to use the target/web.xml file mergewebxml produces,
          tell the war plugin to use it.
          Also, exclude what you want from the final artifact here.
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webXml>target/web.xml</webXml>
                    <warSourceExcludes>.gwt-tmp/**</warSourceExcludes>
                </configuration>
            </plugin>
            -->

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.0.2</version>
          <configuration>
            <source>${maven.compiler.source}</source>
            <target>${maven.compiler.target}</target>
            <module>com.gwt.example</module>
          </configuration>
      </plugin>
    </plugins>

    ...rest of pom.xml...

私が成功した別の手法は、Eclipse google gwt pluginを使用することです。ウィザードを使用して新しい gwt プロジェクトを作成し、Eclipse から実行できることを確認してから、独自のコードで変更します。

于 2009-12-09T18:37:35.513 に答える
1

この Web アプリケーションは、Tomcat 5x にデプロイすると正常に動作します。Eclipseで実行しているときにtaglibsを解決できないようです。私は Eclipse を初めて使用しますが、GWT+Maven に必要なすべての可動部分を Eclipse で動作させると、髪が伸びてしまいます。

Tomcat/libの代わりにJSTL JAR ファイルがあるようですWEB-INF/lib。これは、少なくとも 3 つの方法で修正できます。

  1. JSTL JAR ファイルを に移動またはコピーしますWEB-INF/lib
  2. JSTL JAR ファイルTomcat/libを開発マシンに移動またはコピーします。
  3. JSTL JAR ファイルを含む適切な Tomcat サーバーを Eclipse の Web プロジェクトに関連付けます。まだ行っていない場合は、Tomcat サーバーをServersビューに追加します。次に、プロジェクトのプロパティで、 [ Java ビルド パス] > [ライブラリ] > [ライブラリの追加] > [サーバー ランタイム]に移動し、問題のサーバーを選択します。
于 2009-12-09T20:37:00.453 に答える
1

jsf-api.jarJava プロジェクトで " " を "エクスポート済み" としてマークしようとしましたか? (このスレッド
で言及されているように)

1.) java-project プロパティに移動し、" jsf-api.jar" をエクスポート済みとしてマークします。( project>properties>java build path>order and exports)
2.) 高度なグローバル tomcat 設定に移動し、プロジェクトを tomcat クラスパスに追加します ( windows>preferences>tomcat>advanced>add projects to tomcat classpath)

次に、Eclipse で Web アプリケーションを実行してみます。

これは、JSFではなくHudson向けの同じ手順/セットアップを説明する記事です(ただし、同じ問題です)

上記の 2 つの手順を明確に確認できます。


(出典: hudson-ci.org )


(出典: hudson-ci.org )

于 2009-05-11T21:52:24.640 に答える