0

UI ダイアログを表示する SmartGWT アプリケーションを作成しました (ダイアログにいくつかのコントロールを表示します)。

このダイアログ アプリはテスト済みで、うまく動作しますが、他の SmartGWT プロジェクトがこれをウィジェットとして使用できるように、これを jar ファイルとして配布する必要があります。

このコンポーネント「RemoteFileDialog」をjarファイルとして出荷する方法を検討しているため、他のSmartGWT Webアプリでファイルブラウザを表示するために使用できます。完全に理解するために参照できる詳細なドキュメント/リファレンスはありますか?

jar cvf ... コマンドを使用して、このダイアログ アプリケーション用の jar ファイルを作成しました。

この .jar をターゲットの smartGwt サンプル プロジェクトで使用すると、.jar に含まれるクラスが見つかりません。

確かに、Eclipse ide で次の手順を実行しました。

  1. 「外部jarの追加」を介してパスを構築するためにjarを追加しました

  2. モジュールの継承: gwt.xml ファイルへの変更

3 モジュールが適切に継承されているかどうかをテストするために gwtc を実行しました。GWT コンパイルは、警告やエラーなしで動作します。

ただし、以下に示すテスト コードでダイアログ クラス (jar ファイルの一部) のインスタンスを作成しようとすると、Eclipse は、他のすべての jar ファイルの場合と同様に、必要なインポートを認識しないか、追加するように求めます。 . コード:

import ステートメントを自分で手動で追加しても、それらの行でコンパイル エラーが発生します。

別の smartGWT プロジェクトで .jar ファイルとして使用できるように、SmartGWT プロジェクトから .jar ファイルを作成する適切な方法が必要です。

どんな助けと手がかりも大歓迎です..

理にかなっていれば、これは私の環境です:!

SmartGWT 3.0 GWT 2.4 ブラウザ: Firefox 7.0.1 開発環境: Eclipse Indigo on Ubuntu11.10

よろしく、 RV

.gwt.xml ファイルの内容を追加しています...

これはウィジェット プロジェクト ファイル用です: RemoteFileBrowser.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='remotefilebrowser'>
<!-- Inherit the core Web Toolkit stuff.                        -->
<inherits name='com.google.gwt.user.User'/>

<!-- Inherit the default GWT style sheet.  You can change       -->
<!-- the theme of your GWT application by uncommenting          -->
<!-- any one of the following lines.                            -->
<inherits name='com.google.gwt.user.theme.clean.Clean'/>
<!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>     -->

<!-- Other module inherits                                      -->
<inherits name='com.smartgwt.SmartGwt'></inherits>
<inherits name="com.smartgwt.tools.SmartGwtTools"></inherits>
<!-- Specify the app entry point class.                         -->
<entry-point class='com.comviva.remotefilebrowser.client.RemoteFileBrowser'/>

<!-- Specify the paths for translatable code                    -->
<source path='client'/>
<source path='shared'/>

</module>

これは、widget:file: GWTSample.gwt.xml を使用するホスト プロジェクト用です。

    <?xml version="1.0" encoding="UTF-8"?>
    <module rename-to='gwtsample'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />

<!-- Inherit the default GWT style sheet. You can change -->
<!-- the theme of your GWT application by uncommenting -->
<!-- any one of the following lines. -->
<inherits name='com.google.gwt.user.theme.clean.Clean' />
<!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
<inherits name="com.smartgwt.SmartGwt" />
<!-- <inherits name="com.comviva.scheduler.SchedulerWidget"></inherits> -->
<inherits name="com.comviva.remotefilebrowser.RemoteFileBrowser"></inherits>
<inherits name="com.smartgwt.tools.SmartGwtTools"></inherits>

<!-- Other module inherits -->

<!-- Specify the app entry point class. -->
<entry-point class='com.rv.gwtsample.client.GWTSample' />

<!-- Specify the paths for translatable code -->
<source path='client' />
<source path='shared' />

    </module>
4

2 に答える 2

0

少し苦労した後、以下に投稿して解決策を見つけることができました。これは、私のような他の初心者にも役立つかもしれません:)

  • jar ファイルのビルド方法が正しくありませんでした。
  • .jar ファイルを手動で (Eclipse ではなく) 作成したため、com/comviva/remotefilebrowser/*.class の下に RemoteFileDialog の .class ファイルが追加されませんでした。代わりに、/war/WEB-INF/classes などの場所からクラス ファイルが追加されました。
  • このため、.jar をインポートしても認識されませんでした。

ここで、Eclipse エクスポート オプションを使用して .jar を作成し、含めるファイル /resources のリストを選択します。

于 2012-05-17T08:42:58.343 に答える
0

ではRemoteFileBrowser.gwt.xml、次を使用してモジュールの名前をより簡単な名前に変更できます。

<module rename-to='com.foo.MyModule'>

次に、この「ウィジェット」を別のプロジェクトに含めるときは、次のようにします。

<inherits name="com.foo.MyModule" />

詳細については、このリンクを確認してください: https://developers.google.com/web-toolkit/doc/latest/DevGuideOrganizingProjects

モジュール名は大文字と小文字が区別されるので注意してください

于 2012-05-16T12:07:05.033 に答える