問題タブ [icepush]

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 に答える
146 参照

java - ICEPush: 通知時にパラメーターを渡す

ICEPush の基本的な機能をよく理解しています。クライアントがサブスクライブし、新しいデータがあるとサーバーがサブスクライバーに通知し、クライアントが ajax を介してペイロードを要求します。これは十分に機能しますが、特定のシナリオで発生するパフォーマンスの問題があります。

いくつかのアイテムの変更を追跡しているページがあるとします。たとえば、「ItemChange」というサーバー上の ICEPush イベントにサブスクライブします。この「ItemChange」イベントは、サーバー上のプロセスが「Item」エンティティを変更するたびにトリガーされます。ここで、ユーザーが ID 2 と 3 のアイテムを追跡していて、ID 5 のアイテムを変更するイベントがサーバーで発生したとします。サーバーは「ItemChange」イベントを通知し、クライアントはペイロードを要求します。アイテム 5 を追跡していないため、役に立ちません。このシナリオでは、サーバーに対して多くの不要な呼び出しが発生します。

これを回避する方法を探していましたが、まだ何も見つかりませんでした。通知と一緒にパラメーターを送信できれば、変更されたアイテムの ID を渡すだけで済みます。したがって、クライアントはペイロードを要求する必要があるかどうかを知ることができますが、その方法はないようです。これを行う。どんな提案でも大歓迎です、ありがとう。

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

jsf - JSF 2.0 (IceFaces 3.2) ApplicationScoped Bean、共有データ、および PUSH

共有データとプッシュに少し問題があります。

3 つの行を含むテーブルがあります。これらの行は、選択した基準日によって異なります (各ユーザーは異なる基準日を選択する可能性があるため、セッション スコープ内にあります)。たとえば、次のようにします。

  • [{1, 'a', "active"}, {2, 'b', "active"}, {3, 'c', "inactive"}] 基準日 10-Feb-13 および
  • [{4, 'a', "inactive"}, {5, 'b', "active"}, {6, 'c', "inactive"}] 基準日 13-Mar-13.

オブジェクトは、種類 {ID、LABEL、STATUS} のトリプルです。

行は、同じ基準日をウォッチしているユーザー間で共有する必要があります。たとえば、ユーザー U1 と U2 は、基準日が 10-Feb-13 のテーブルをウォッチしています。理想的には、U1 が行 {1, 'a', "active"} を "inactive" に変更すると、プッシュ通知 (実際には IcePush) を介して、それを確認するユーザー U2 にも変更が伝達されます。ここまでは順調ですね。

より多くのユーザーが異なる参照日を見ると、問題が発生します。これは、Bean がアプリケーション スコープであるため、ユーザーの特定の参照日ではない行を除外し、不要な行を「解放」しようとするためです。

私たちは当初、特定の参照日を視聴しているユーザーをカウントできると考えていましたが、それはガベージ コレクションをカウントする参照のようなものであり、私が深く掘り下げたくない混乱です。

ちなみに、このチュートリアルを読んだので、このように動作するはずだと思いました。

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

vaadin - Vaadin 7 で ICEPush 0.5.5 を実装

Vaadin 7 プロジェクトに ICEPush アドオンを追加しようとしています。しかし、それを実装する正しい方法が見つかりませんでした。

これを web.xml ファイルに追加しました。

クラスorg.vaadin.artur.icepush.ICEPushServletは利用できないようです。に変更しましたorg.icepush.servlet.ICEpushServlet

Vaadin 7.0.4 と ICEPush 0.5.5 を使用しています。Vaadin 7 で ICEPush を実装する方法を教えてもらえますか。

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

java - maven インストール中の Vaadin アドオン ICEpush エラー

Vaadin Addon ICEpush を使用しようとしています。次のMavenスニペットをpom.xmlに追加しました

pom.xml に以下も追加しました

しかし、Eclipse から Maven インストールすると、次のエラーが発生します。

これを解決する方法についての提案は大歓迎です

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

servlets - セッション開始時に動的にサーブレット フィルターを追加/削除する

私の JSF アプリケーションは、JCIFS である Active Directory 認証モジュールを使用しています。しかし、JCIFS フィルターは IE8 の ICEpush 関連のものを防ぎます。認証後にJCIFSフィルターを(可能であれば)削除することを考えました。したがって、セッションベースです。セッションの統計時にフィルターを適用できますか?認証が完了したら、現在のセッションからフィルターを削除できますか? そのため、現在のセッションの後にリクエストはフィルタリングされません。

ありがとう。

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

liferay - Liferay-Portlet 6.1.20 と ICEFaces 3.3.0: ace:fileEntry および icepush

Liferay のポートレットを作成していて、ace:fileEntry コンポーネントが必要です。最終的に解決できた問題がいくつかありました。しかし今、私は理解できない問題に直面しています。

ace:fileEntry が含まれているビューページがオープンエンドの場合、プラス マイナス 90 秒後に「ネットワーク接続が中断されました」というメッセージがポップアップ表示され、ページをリロードする必要があります。いくつかの調査の後、ブラウザコンソールで次の行を見つけました。

以下のバージョンの Liferay と ICEFaces を使用しています。

  • Liferay ポータル 6.1.20-EE-GA2
  • Liferay-Faces-Bridge-Impl 3.1.2-ga3
  • ICEFaces 3.3.0

私の web.xml は次のようになります。

私の face-config.xml は次のようになります。

ace:fileEntry が配置されている私の viewpage.xhtml は次のようになります。

あなたの誰かが問題を解決する方法を知っていますか、またはなぜこれが起こるのですか?

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

multithreading - 同時変更例外を発生させずに他のユーザーの Vaadin テーブルを更新する方法は?

ユースケース:ユーザーがログインし、Vaadin Table コンポーネントを開いて予定のステータスを表示しました。すべての行には、ステータス (Scheduled、Arrived、Reviewed) を変更するためのドロップダウン (ComboBox) があります。現在、複数のユーザーが自分のブラウザでこのテーブルを開き、予定のステータスを継続的に変更しています。これらの変更は、開いているすべてのテーブルに反映される必要があります。つまり、ユーザー A が予定 appt-1 のステータスを変更すると、現在開いているすべてのテーブルに反映されて更新されます。

以前は、ICE-PUSH アドオンを使用してイベント ベースの更新を適用していました。つまり、PC-1 (つまり、アプリケーション インスタンス a1) で変更が行われた場合、Vaadin アプリケーションの他のインスタンスをクラスの静的CopyOnWriteArrayListから取得し、MainApplicationそのインスタンスによって関数を呼び出しloadTableます。その後、ICEPUSH を呼び出して、新しい変更をすべてのユーザーにプッシュします。

これは正常に機能しますが、多くの頻繁な変更が行われると、同時変更例外が発生する場合があります。誰かがこれを改善するのを助けることができれば?

この後に私が考えている解決策は、テーブルコンポーネントを強制的に更新するのではなく、独自のアプリインスタンスによって1ミントごとに継続的に更新することです。これにより、データベースがクエリされ、更新されたステータスでテーブル コンテナーがリロードされます。この目的のために、私はリフレッシャーアドオンを使用しますが、例外ConcurrentModificationExceptionが発生します. したがって、ユーザーが何もできず、バックグラウンドでテーブルを簡単に更新できるように、ユーザーの観点からテーブルコンポーネントをフリーズすることを考えています。

このユースケースでより良い解決策がある場合は、教えてください。私はあなたに感謝しています。

Vaadin 6.8.12、Java 1.7、Apache Tomcat 7.42 を使用

0 投票する
0 に答える
1267 参照

jsf - org.icepush.util.ExtensionRegistry.getBestExtension での java.lang.NullPointerException

新しい IceFace プロジェクトを作成し、ローカル ホストで実行しようとしましたが、次のエラー メッセージが表示されました。

ここに私のweb.xmlがあります

WebContext の下にある 2 つのファイルは、index.jsf にリダイレクトする index.jsp で、もう 1 つのファイルは index.xhtml で、次のものが含まれています。

ウェルカムファイルリストをに切り替えてみました

この変更により、ローカルホストはクラッシュしませんが、空白のページが表示されます (JSF 要素は表示されません)。JSf タグが解析されていないためだと感じていますが、どこにあるのかよくわかりません。問題は、誰か私を助けてくれますか?

その他の情報: Web 開発者向けの Eclipse Java EE IDE を使用しています ICEFACES 3.3.0 Tomcat 3.0

ありがとう。


アップデート:

私のweb.xmlウェルカムファイルリストをに変更しました

サーブレットマッピングをに変更しました

現在クラッシュはありませんが、JSF 要素が表示されず、空白のページしか表示されません。


更新:

Web.xml

url-patternタグ内で.jsfと.xhtmlを試しましたが、どちらもうまくいきません

index.jsp


ページをロードした後、空白になるので、ページを右クリックしてソースを表示すると、これが見つかりました...

なぜこれが起こっているのですか?