3

私のアプリケーションは開発モード (GWT-RPC 呼び出しを使用) では問題なく動作しますが、プロダクション モードを使用して ( ?gwt.codesvr=127.0.0.1:9997URL の一部を削除して) テストしようとすると、以前は空白のページが表示されていました。

私は手動で VoitureTourisme.html ファイルをチェックし、voitureTourisme.nocache.js ファイルのパスを機能するパスに変更しました (これは、Web.xml が適切に構成されていないことを意味します。それなら、なぜ開発モードで機能するのでしょうか?)

今はこんな感じです <script language="javascript" src="voitureTourisme/voitureTourisme.nocache.js"></script> が昔はそうでした

src="com.devsys.calculateur.voitureTourisme.VoitureTourisme/com.devsys.calculateur.voitureTourisme.VoitureTourisme.nocache.js" 最初にコンパイルしたとき。さまざまなバリエーションを試して数回コンパイルしたため、war 内に 2 つのモジュール フォルダーが作成されました。

VoitureTourisme.gwt.xml および Web.XML ファイルを適切に構成する方法を混乱させていると確信しています。コンパイルした html ファイルを手動で修正する必要がないからです。手動で修正した後 (これを行う必要はありません)、RPC 呼び出しで 404 エラーが表示されました。これは、サービスのサーブレットが見つからなかったためです (不正な URL)。

うまくいけば、私の設定で何が間違っているのか、その理由を教えていただけますか

Web.xml

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    <!-- TODO: Add <servlet> tags for each servlet here. -->
    <!-- TODO: Add <servlet-mapping> tags for each <servlet> here. -->
    <!-- TODO: Optionally add a <welcome-file-list> tag to display a welcome file. -->
     <!-- Servlets -->
  <servlet>
    <servlet-name>calculateurDataService</servlet-name>
    <servlet-class>com.devsys.calculateur.voitureTourisme.server.form.CalculateurDataServiceImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>calculateurDataService</servlet-name>
    <url-pattern>/com.devsys.calculateur.voitureTourisme.VoitureTourisme/calculateurDataService</url-pattern>
  </servlet-mapping>
</web-app>

VoitureTourisme.gwt.xml

<module>
    <inherits name="com.google.gwt.user.User"/>
    <inherits name="com.google.gwt.user.theme.standard.Standard"/>
    <inherits name="com.devsys.util.XmlUtil"/>
    <inherits name="com.devsys.util.UrlUtil"/>
    <inherits name="com.google.gwt.i18n.I18N"/>
    <entry-point class="com.devsys.calculateur.voitureTourisme.client.VoitureTourisme"/>
</module>

また、サービスインターフェイスを使用しています

@RemoteServiceRelativePath("calculateurDataService")

あれは正しいですか?使うべきですか?

4

1 に答える 1

2

問題はモジュール名に関連していると思います。継承を開始する前に、gwt.xml に次の行を追加してみてください。

<module rename-to='voituretourisme'>

次に、web.xml ファイルで次のように変更してみてください。

<url-pattern>/voituretourisme/calculateurDataService</url-pattern>

あなたのhtmlファイルは次のようになります:

<script language="javascript" src="voituretourisme/voituretourisme.nocache.js"></script>

大文字と小文字の区別に注意してください。これは正しくコンパイルされ、開発モードと本番モードの両方で動作するはずです。

于 2011-08-18T07:13:20.517 に答える