2009-05-11 14 views
12

EclipseでGWTホストモードを使用しようとしました。this HOWTO。私のGWTのコードと同様に、サーブレットは、正常に動作しますが、私のすべてのJSPがあるため、次のようなエラーで失敗する:Tomcatの5倍の下に配置されたときGWT/Eclipse/Jettyの問題:Jasperがタグライブラリを解決できない

[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アプリケーションが正常に動作します。私はEclipseで動いているときにtaglibを解決するようには思えません。 私はEclipseに慣れていないので、GWT + Mavenに必要なすべての動いている部分を使って作業しています。

更新:私はもはやEclipseを使用していません。私はIntellij IDEAに切り替えました。だから私は正直なところあなたが親切に答えを評価することはできません。何らかの投票が行われたり、他の方がこれらの方法のいずれかを使って成功を報告したら、適切な回答を受け入れます。ありがとう。

+1

これはほぼ7年後には信じられないが、これは依然として問題である。多くのSOは、一般にJSTL URIを解決する問題に答えていますが、深く暗いどこにも隠されていない古いJSTLには奇妙な依存関係があり、新しいものをインポートしようとすると混乱するGWT& JSTLの依存関係。たとえば、GWTがTomcatにデプロイされると、すべて動作します。この段階で、@BalusCのような人がGWTをやっていたら、この問題の修正を投稿します。 :-P –

答えて

1

Javaプロジェクトで「jsf-api.jar」を「エクスポート済み」としてマークしましたか?
this threadで述べたように)

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

その後、日食の下で、あなたのWebアプリケーションを実行するために、再試行してください。ここで

あなたは、私が上記の二つのステップはっきりと見ることができan articleないJSFのために、同じ手順/設定を記述したが、ハドソン(ただし、同じ問題)

です:

http://wiki.hudson-ci.org/download/attachments/4161557/override.png

http://wiki.hudson-ci.org/download/attachments/4161557/otherTips.png

+1

うーん、なぜjsf?あなたはjstlと言ったのですか?私は既にそれを私のmaven設定のdepとして持っているので、すでにクラスパス上にあるはずです。しかし、私は先に進んでビルドパスに手動で追加しようとします。ありがとう。 –

+1

JSTLはもっとそれに似ています:)しかし、この回答に記載されている一般原則は依然として立っています。それで、あなたの事件のために働いたのですか? – VonC

+1

Nope。私はすでにjstlをMaven経由で依存関係としてリストアップしています。 "ライブラリ"タブのMaven depsの下に表示され、 "Order and Export"タブで "Maven Dependencies"のチェックマークが付いています。まだ喜びはありません。 :-( –

1

私はあなたの痛みを感じます。私は一緒に仕事をするのに苦労し、同じことをするのと同じ痛みを経験しました。

次のpom.xmlを使用してmavenと連携させることができました。このようにしてmvn gwt:runをホストモードで実行することはできますが、残念ながらmvnゴールを得ることはできませんでしたmvn gwt:eclipseはEclipseの起動ランタイム設定を生成するために使用します。

ここに、pom.xmlの関連するスニペットがあります。注意しておくと、gwtを別の場所にインストールし、mvnをrepoからgwtをダウンロードするのではなく、mavenを使って簡単にインストールすることができます。 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... 

私が成功したもう一つのテクニックは、google gwt pluginです。ウィザードを使用して新しいgwtプロジェクトを作成し、eclipseから実行できることを確認してから、独自のコードを変更してください。

1

このWebアプリケーションは、Tomcat 5xの配備でうまく動作します。私はEclipseで動いているときにtaglibを解決するようには思えません。私はEclipseには新しく、GWT + Mavenに必要なすべての動いている部分を扱うようになっています。

あなたは明らかにTomcat/lib代わりのWEB-INF/libでJSTLのJARファイル(複数可)を持っています。

  1. JSTL JARファイルをWEB-INF/libに移動/コピーします。
  2. 開発マシンのTomcat/libにJSTL JARファイルを移動/コピーします。
  3. JSTL JARファイルを含む適切なTomcatサーバーをEclipseのWebプロジェクトに関連付けます。まだ完了していない場合は、ServersビューにTomcatサーバーを追加してください。そして、プロジェクトのプロパティは>が問題のサーバーを選択ライブラリ>サーバーランタイム>を追加のJavaのビルド・パスに>ライブラリを行きます。
1

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