問題タブ [requestfactory]
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.
java - GoogleWebToolkitの自動更新グリッド
グリッドを含むアプリケーションを実装すると、誰かがこのグリッドで何かを変更するたびに、グリッドを開いている他のユーザーのグリッドが自動的に更新されます(Googleドキュメントのように)。
2秒ごとにリクエストを送信するgwt-rpcを使用してこれを実装しようとしました。何か新しいものがある場合、アプリケーションは変更されたものを送信するだけです。しかし、GAEサーバーにアップロードしたときにいくつかの悪い結果がありました。
そこで、私はgoogle docsの実装を分析し、それがほぼ1分間開いた接続を維持し、誰かが何かを変更するたびに新しい情報を送信することを確認しました。GWTでこのようなことができるかどうか知りたいのですが。現在、リクエストファクトリを使用して実行しようとしていますが、同じ問題が発生すると思います。
何か案は?
gwt - stableId はどの程度安定していますか?
JavaDoc にEntityProxy.stableId()
は次のように書かれています。
これは、異なるリクエスト コンテキスト全体でそのオブジェクトに対して安定した ID が有効になるということですか? 異なるリクエスト ファクトリ インスタンス間で? 安定したIDの範囲は何ですか?
gwt - JPAとRequestFactory:外部キーの永続性
私のJPAエンティティクラスには次のものがあります。
私のGWTビューには、次のものがあります。
/////////////////////
Users
またBookings
、ユーザー制約のない永続性は正常に機能します。しかし、上記のコードでは、ID「12」のユーザーを新しく作成された予約に割り当てる必要があります。しかし、既存のユーザーID12に新しい予約を割り当てることはできません。次のエラーが発生します。
[EL警告]:2011-07-05 18:48:45.464--UnitOfWork(267787945)--例外[EclipseLink-4002](Eclipse Persistence Services-2.3.0.v20110604-r9504):org.eclipse.persistence.exceptions .DatabaseException内部例外:org.firebirdsql.jdbc.FBSQLException:GDS例外。335544665.テーブル"USERS2"のPRIMARYまたはUNIQUEKEY制約"INTEG_388"の違反
これは、ID「12」のユーザーがすでに存在し、JPAが、ユーザーID「12」を外部キーとして新しい予約を作成するのではなく、同じIDで新しいユーザーを作成したいためです。
RequestFactory
新しいユーザーを作成するのではなく、既存のユーザーのユーザーIDを新しい予約エントリに割り当てるように指示するにはどうすればよいですか?
gwt - GWT 2.4 の問題
gwt2.4rc としてタグ付けされた svn でバージョンをコンパイルしました。前回よりもライブラリがいくつか増えました。どのライブラリが何のために必要かについての指示はありますか? 標準ライブラリ (servlet、servlet-deps、user) のみで試してみましたが、requestfactory 呼び出しが行われると次のエラーが発生します。
java.lang.NoSuchMethodError: com.google.gwt.core.client.impl.WeakMapping.setWeak(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)
requestfactory-client および requestfactory-server jar を依存関係として宣言しようとしましたが、役に立ちません。依存関係を管理するために maven を使用しています。2.4 ベータ版に戻りますが、後で導入されたドラッグ アンド ドロップ機能が必要です。誰が何が間違っているのか考えていますか? または、これをさらに深く掘り下げる方法のヒントはありますか? 私はこれを理解しようと多くの時間を費やしていますが、成功していません:(さらに情報を提供する必要がありますか?
よろしく、アルネ
gwt - Tomcat で GWT 2.4 アプリを実行する際の問題
gwt2.4rc1 アプリケーションを tomcat で実行する際に問題があります。この問題は、requestfactory 呼び出しを実行しようとすると発生します。次に、一番下に例外が発生します。
GWT を開発モードで実行すると、すべて正常に動作します。gwt-dev. jar は、webapp の lib フォルダーにあります。依存関係管理にmavenを使用しています。構成に問題がある可能性はありますか? gwt2.4 beta で既にエラーが発生しました。この問題を解決するために必要な情報が他にある場合は、喜んで提供します。
よろしく、アルネ
SEVERE: 予期しないエラー com.google.web.bindery.requestfactory.server.UnexpectedException: com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.die(ServiceLayerDecorator.java:216) での予期しないチェック例外 com.google.web .bindery.requestfactory.server.ServiceLayerCache.getOrCache(ServiceLayerCache.java:242) com.google.web.bindery.requestfactory.server.ServiceLayerCache.resolveRequestFactory(ServiceLayerCache.java:198) で com.google.web.bindery.requestfactory .server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:201) com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:125) com.google.web.bindery.requestfactory.server.RequestFactoryServlet で.doPost(RequestFactoryServlet.java:133) javax.servlet.http.HttpServlet で。サービス (HttpServlet.java:641) で javax.servlet.http.HttpServlet.service(HttpServlet.java:722) com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:261) で com.google.inject .servlet.ServletDefinition.service(ServletDefinition.java:175) com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) で com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) ) org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) で org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) で org.apache.shiro. com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:162) の web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) com.google.inject.servlet.com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) の FilterChainInvocation.doFilter(FilterChainInvocation.java:58) 組織の com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve) .java:240) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:203) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) org.apache.catalina. org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) で org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) で org.apache.coyote.http11 .Http11Processor.process(Http11Processor.java:242) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint) .java:281) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) で java.lang.Thread.run( Thread.java:636) 原因: java.lang.NoClassDefFoundError: com/google/gwt/dev/util/StringKey at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2804) at org.apache.catalina.loader .WebappClassLoader.findClass(WebappClassLoader.java:1144) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1639) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1517) com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.validateProxy(RequestFactoryInterfaceValidator.java:1594) com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.validateEntityProxy(RequestFactoryInterfaceValidator.java:828) web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.maybeCheckProxyType(RequestFactoryInterfaceValidator.java:1540) com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.getDomainType(RequestFactoryInterfaceValidator.java:1374) で com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.createDomainMethod( RequestFactoryInterfaceValidator.java:1192) com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.checkClientMethodInDomain(RequestFactoryInterfaceValidator.java:1079) com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.validateRequestContext(RequestFactoryInterfaceValidator.java: 909) com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.validateRequestFactory(RequestFactoryInterfaceValidator.java:964) で com.google.web.bindery.requestfactory.server.ResolverServiceLayer.resolveRequestFactory(ResolverServiceLayer.java:187) com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172) com.google.web. com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172) の com.google.web.bindery.requestfactory. server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172) の sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) の sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) の sun.reflect.DelegatingMethodAccessorImpl.com.google.web.bindery.requestfactory.server.ServiceLayerCache.getOrCache(ServiceLayerCache.java:233) で java.lang.reflect.Method.invoke(Method.java:616) で呼び出し (DelegatingMethodAccessorImpl.java:43) .. . 32 以上 原因: java.lang.ClassNotFoundException: com.google.gwt.dev.util.StringKey at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1672) at org.apache.catalina.loader .WebappClassLoader.loadClass(WebappClassLoader.java:1517) ... 57 もっと見る1672) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1517) ... 57 詳細1672) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1517) ... 57 詳細
gwt - GWT リクエスト ファクトリ - 同じエンティティ タイプの複数のエンティティ ロケータ
同じドメイン オブジェクトに対して異なるエンティティ ロケーターを使用できるようにしたいと考えています。私が使用Twig
していて、オブジェクトを完全または部分的にロードするオプションがあります。ライト リクエストを実行すると、代わりにfetchRangeLite
ロケータが使用されます。私の現在の実装は次のとおりです。TwigLocator
TwigLiteLocator
プロキシ
リクエスト
ダオ
ライトロケーターが使用されることを期待していましたが、そうではありません。では、RF は特定のドメイン タイプに使用するロケーターをどのように選択するのでしょうか?
アップデート
私のドメイン オブジェクトは、リストのリストで構成されています。
オブジェクトのプロキシがMyDomain
サーバーからクライアントに送信されると、すべての とすべてのTwig
が読み込まれ、時間がかかります。オブジェクトのプロパティにのみ関心があるため、「ライト」ロケーターを使用したいと考えています。A
B
MyDomain
Twigロケーター
TwigLiteロケーター
myDatastore.setActivationDepth(0);
MyDomain
サブレベル (リスト)のプロパティではなく、プロパティのみを読み込むようにデータストアに指示します。
DAO の実装は同じであるため、ID とバージョンは両方のプロキシで同じです。
android - AppEngine RequestFactory または「通常の」アプローチ?
これは実際には問題ではなく、一般的な X 対 Y の質問に似ています。
だから私はグーグルアプリエンジンで書かれたサーバーを使ってアンドロイドでc2dmを試しています。現時点では、「App Engine Connected Android Project」を自分でコードを追加したテンプレートとして使用しています。したがって、生成されたコードは、デバイスの登録/登録解除、メッセージの送信など、一連の処理に RequestFactory を使用します。
私の以前のバックエンド通信の経験は、サーブレットへの接続を設定し、サーブレットに書き込み (json)、応答を読み取る (json) というものでした。
ここで質問があります: URLConnection の入力/出力ストリームからの書き込み/読み取りではなく、アプリ エンジンとの通信に RequestFactory を使用する利点は (あるとすれば) 何でしょうか? それとも本当に好みの問題ですか?
gwt - GWTRequestFactoryリクエストをキャンセルします
リクエストファクトリリクエストをキャンセル/中止する方法はありますか?GWT2.3の使用
gwt - GWT requestFactoryの結果をフィルタリングする方法は?
GWTでRequestFactoryを使用してデータフィルタリングを行う方法について質問があります。私は現在、MySQLデータベースに支えられたアプリケーションに取り組んでいます。私の永続層はJPA/Hibernateに基づいています。RequestFactoryを使用して、リストに関連するすべての操作についてデータベースにクエリを実行しています。
たとえば、Personオブジェクトがあります。PersonRequestContextに、個人を一覧表示できるメソッドがあります。メソッドのシグネチャは次のとおりです。
ご想像のとおり、対応するクエリは次のようになります。
ここで、テーブルの列に基づいて結果をフィルタリングしたいと思います。それで、私はそれを解決するためにある種のFilterクラス抽象化を使用したかったのです。問題は、ご存知のとおり、非プリミティブオブジェクトをrequestFactoryメソッドに渡すことができないことです。
このようなことを経験したことがありますか?そして、問題を解決するためにどのように対処しましたか?
gwt - メモリ リークを検出するための GWT アプリケーションのプロファイリング
Tomcat にデプロイされた GWT ベースのアプリケーションがあります。1 日おきに、アプリケーションが OutOfMemoryException でクラッシュします。そのため、割り当てられた最大メモリの使用に近づいたときに、アプリケーションのヒープ ダンプを取得し始めました。
アプリケーションの動作は次のとおりです。
- ユーザーがアプリケーションにログインします
- クラスター設定を使用してサーバー上で分析されるアプリケーションへの入力を入力します。
- クライアントは、ジョブのステータスについて 15 秒ごとにサーバーをポーリングし、UI コントロールを更新します。ポーリングは、サーバーからデータを取得する requestfactory 呼び出しを使用して行われます。
- ジョブが完了したら、フレックステーブルを使用してユーザーに結果を表示します。6 列で約 1000 行になる場合があります。
ヒープダンプ、
jmap を使用して tomcat プロセスのヒープ ダンプを取得し、何がメモリに保持されているかを確認しました。次の写真は、ヒープ ダンプを使用して Eclipse Memory Analyzer を使用して撮影したものです。
保持サイズが 25k のヒープに多数のハッシュマップ エントリが保持されており、それらのエントリが約 600 万個あることがわかります。
質問:
- com.google.gwt.core.client.impl.WeakMapping は 16 バイトの浅いヒープを示していますが、保持されたヒープは、アプリケーションに割り当てたメモリのほとんどすべてです。
- 15 秒ごとにサーバーをポーリングし、何らかの形で参照されているが GC されていないデータを取得しているためでしょうか。
- これらのハッシュマップの参照を解除するにはどうすればよいですか。
- ここで述べたシナリオとはまったく違うものですか。
これまで、アプリケーションの分析には jconsole、jprofiler、MAT、jhat を使用してきました。そして、問題がどこにあるのかわかりません。
あなたの助けに感謝。