問題タブ [jsni]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1398 参照

java - JSNI : GWT : java.io.RandomAccessFile 型のソースコードはありません

私は GWT の n00b です。RandomAccessFile を使用してファイルから読み取り、Web ページに表示したいと考えています。

GWT クライアントでは RandomAccessFile がサポートされておらず、Java 関数を呼び出すには JSNI を使用する必要があることがわかりました。

RandomAccessFile コードを持つ関数を呼び出す JSNI 関数があります。Web プロジェクトを実行すると、以下のエラーが発生しますが、ページが読み込まれ、テキスト ボックスにファイルの内容が表示されます。

エラー: 14:58:43.854 [エラー] [監視アクティビティ] 14 行目 java.io.RandomAccessFile 型のソース コードはありません。必要なモジュールを継承するのを忘れましたか?

誰でもこのエラーを修正するのを手伝ってくれますか?

この RandomAccessFile コードの実装は、クライアントと同じパッケージ内の別の Java ファイルにあります。gwt.xml ファイルに何か追加する必要はありますか?

コード:

onModuleLOad から呼び出しています: res = JsniExample.jsniCode();

0 投票する
1 に答える
431 参照

java - JSNI を介した GWT の java.lang.reflect.Proxy に似た機能

GWT の一部のカスタム クライアント サーバー通信コードでは、java.lang.reflect.Proxy で行うのと同様の方法で Java インターフェースを動的に実装したいと考えています。GWT にはリフレクションのサポートが含まれておらず、扱いにくいコード ジェネレーターを作成するのが嫌いなので、これを JSNI およびオーバーレイ タイプで実行できるかどうか疑問に思っています。

以下のような流れで考えています。

  1. 私はいくつかの既存のJavaインターフェースを持っており、そのメソッドとその署名、注釈などの表現を何らかの形で持っています(実際のクラスオブジェクトはGWTでは役に立たないため)。
  2. その表現を、それを使用して新しい Javascript オブジェクトを構築し、それに対応するメソッドを定義する JSNI メソッドに渡します。メソッドの実際の実装はかなり簡単で、引数を何らかのデータ構造に書き込み、null を返すだけです。
  3. インターフェイス型に何らかの形でキャスト可能な JSNI から Javascript オブジェクトを取得します。インターフェイスのメソッドがこのインスタンスで呼び出されると、ステップ 2 で定義された対応する Javascript メソッドが呼び出され、引数が保存されます。

誰かが似たようなことを試みましたか?これが原則として機能しない理由はありますか?

前もって感謝します。

0 投票する
2 に答える
5711 参照

gwt - GWT JSNI ブール値

これが私のコードです:

ブラウザ コンソールに次のように表示されます。

キャッチされない例外: java.lang.IllegalArgumentException: 呼び出し引数: ブール型の JS 値、期待される java.lang.Boolean

Chrome と Firefox でテストしました。

何が問題ですか?

助けてくれてありがとう!

0 投票する
1 に答える
743 参照

java - 私の GWT アプリは、JSNI 呼び出しからネイティブ関数を実行していません。テイカーはいますか?

GWT アプリで JSNI 呼び出しからネイティブ Java 関数を実行しようとしています。次のようになります。

パッケージ foo.client;

public class AAA は、EntryPoint、UIupdate を実装します {

...

...

}

フロントエンドで jsChangeView() 関数呼び出しをリンク onclick() にアタッチしてクリックすると、「ここに来ました」アラートが発生しますが、「Hello World」アラートは発生せず、他の 2 つの関数も実行されません。GWT は私の専門分野ではありませんし、これは私のアプリでもありません。そのため、ここで何か基本的なことが欠けていることはわかっています。テイカーはいますか?

0 投票する
4 に答える
1414 参照

gwt - JSNI を使用して JavaScript を GWT に統合する際の問題

JSNI を使用して GWT 用の WebSockets の単純なバインディングを作成しようとしていますが、JSNI メソッドが呼び出されるたびに例外が発生し続けます。簡略化されたクラス定義は次のとおりです。

行を使用して Socket オブジェクトをインスタンス化しようとしている間:

次の例外が発生し、理由がわかりません:

以前、型付き配列と Web ワーカーに対して同様のバインディングを作成しようとしましたが、まったく同じエラーが発生したため、これらのバインディングの開発を中断し、この例外の理由が見つかるまで、より簡単なことを試すことにしました。

0 投票する
2 に答える
1147 参照

gwt - GWT: gwt-exporter: オブジェクトを渡す

Java から JSNI (生成された gwt-exporter) を介して Java オブジェクトを Java に渡すのに苦労しており、だれかが助けてくれるかどうか疑問に思っています。

Java ("Person") でオブジェクトを作成し、それを gwt-exporter ("CommonService.displayPerson") で公開された Java メソッドを呼び出す JSNI メソッド ("displayPerson") に渡します。ただし、最終ステージまでのパラメーターは null になります。

String を渡すと問題なく動作します。それは私が問題にぶつかった私のオブジェクトだけです。

Person は、他の GWT アプリケーションによって継承された GWT アプリケーション JAR で定義されます。

ご覧いただきありがとうございます。

マイク

GWT アプリケーション

CommonService.java

Person.java

0 投票する
1 に答える
335 参照

gwt - Javascript を GWT JSNI に送信する

GWT から Javascript を呼び出す方法は知っていますが、文字列を返す JavaScript 関数があるので、その関数が呼び出されたときに GWT に送信するにはどうすればよいでしょうか。

これが理にかなっていることを願っています

0 投票する
2 に答える
3376 参照

java - GWT JSNI と return 関数 - アドバイスが必要

サンプルをあちこち探していましたが、まだ取得できません... JSNIでそのような種類の関数を次のように記述する方法

GWT で JS 関数の戻り値を取得できるということです... ?

すべての有益なコメントをお待ちしております

0 投票する
2 に答える
1342 参照

gwt - GWT-Strophe を使用した GWT XMPP クライアント

GWT-Stropheを使用して XMPP サーバーに接続しています。順調に進んでおり、XMPP サーバーに接続して他のユーザーにメッセージを送信できます。メッセージの受信に問題があります。Strophe echobot の例をコピーしようとしていますが、メッセージを受信したときに Handler のコードが実行されません。

ハンドラーを接続して登録するために使用しているコードは次のとおりです。

0 投票する
1 に答える
1319 参照

java - 静的スコープを回避するために、JSNI 呼び出しを介して複雑なオブジェクトを渡すのに役立ちます

だから私はGWTアプリを持っていて、外側のボタンからアプリのビューを変更する関数を呼び出そうとしています。通常、これは「this.internalFunction('string')」として呼び出されます。問題は、JSNI が静的メソッドを介して動作するため、問題のオブジェクトが失われることです。解決策: アプリのオブジェクト自体を JSNI 呼び出しに渡し、そこからそのオブジェクトの関数呼び出しを呼び出します。解決策の問題: これは機能しません。:(

クラスは次のようになります。

モジュールのロード時に、initChangeFunc() を呼び出し、ページ自体の jsChangeView() にアクセスします。

コンパイル エラーは、コンパイラが blah.package.Foo を見つけられないことを示しています。これは、パラメーターの型シグネチャ (Lblah.package.Foo の部分) が間違っているためです。