問題タブ [glassfish-3]
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.
orm - JPAの起動が遅い
データベース全体 (最大 200 テーブル) 用の JPA 2.0 エンティティ クラスを作成しました。アプリケーションを再構築して初めて起動するたびに、次のメッセージが表示されます。
また、Glassfish でのこれらの (情報) メッセージの出力は非常に遅く、アプリケーションの起動に約 1 分 (!) かかります。
メッセージが問題だと思います。Glassfish コンソールが Netbeans ウィンドウでフリーズし (メッセージが出力されない)、プロセス全体に約 5 秒かかることがあるためです。
これらのメッセージを無効にする方法が見つかりませんでした。速度を上げる方法はありますか?
jakarta-ee - GlassFish v3 でのアプリケーション クライアント トラフィックのオーバーヘッド
Application Client モジュールを使用した EAR アプリケーションがあります。
この EAR ファイルが GlassFish v2にデプロイされ、Application Client モジュールがキャッシュに存在する場合、Application Client の起動中のクライアント マシンとサーバー間のトラフィック量は約 1 です。0.7KB。
しかし、このアプリケーションを GlassFish v3にデプロイし、アプリケーション クライアント モジュールを 2 回目または 3 回目に起動すると (キャッシュに既に存在するように)、アプリケーション クライアント起動時のクライアント マシンとサーバー間のトラフィック量は 10MB になります。
何が間違っている可能性がありますか?
更新 1
「Hello World」を出力するだけの Application Client コンポーネントを使用して単純な EAR プロジェクトを作成し、それを GlassFish v3 にデプロイしても、Application Client がキャッシュから起動されるたびに 5 ~ 6MB になります。
更新 2
問題をより深く掘り下げようとしています。GlassFish v3 のキャッシュからアプリケーションを起動すると、アプリケーション クライアントの各ライブラリ
の GlassFish v3 ログに次の例外が記録されます。
例えば:
私は、トラフィックのオーバーヘッドが関連している可能性があると仮定しています。この問題については、インターネット上にいくつかの情報があります。しかし、明らかに公式の説明や修正方法はありません。
これは、この問題に関連する興味深いスレッドであり、いくつかの光を当てる可能性があります。
ティム(よりtjquinn)が状況についてコメントした方法は次のとおりです。
「確立された接続が中止されました」というメッセージは私たちが見たものですが、あなたが言ったように、起動には影響しないようです. 私は、Java Web Start が JAR のダウンロードを開始し、キャッシュされたコピーが最新であることを発見し、転送を中止すると思いますが、確認していません。これは起こるべきではありませんが、それが Java Web Start の問題なのか、Grizzly の問題 (基本的に GlassFish のトランスポート層) なのか、GlassFish 自体の問題なのかを正確に認識させている原因を特定できていません。
UPD 3同様の問題 について、「Old Nabble」で興味深い議論があります。また、アプリケーション クライアントを起動した後、Web サービスの障害の症状が発生しました。
UPD 4 Grizzly フォーラム (UPD 3 で言及されているスレッド) の Oleksiy Stashok は、Java Web Start フォーラムに質問を投稿することを提案しました。Java Web Start フォーラムのスレッドへのリンクは次のとおりです。
jpa - GlassFishで実行されていないJPAPersistenceUnitPostProcessor
私が使用しているSpring構成には、entityManagerFactoryBean内のpersistenceUnitPostProcessorの定義が含まれています。
JUnitテストを実行すると(つまり、コンテナーの外部で)ポストプロセッサーが呼び出されますが、デプロイされたWebアプリ(Glassfish v3で実行)の一部として参加すると、ポストプロセッサーが実行されません。他のすべてが機能し、Springコンテキストが正しくロードされ、定義されたすべてのBeanがロードされます。これは、ポストプロセッサが起動されないということだけです。
エンティティスキャナーの目的は、@Entity注釈付きクラスを見つけることです。プロジェクトは2つのモジュールに分割されます。1つはドメインモデルを含み、もう1つはDAOと永続性コードを含みます。
スキャナーコードは、クラスパスを検索するauto-scanning-jpa-entitiesのブログ投稿に大まかに基づいています。私が言うように、これはすべてコンテナの外でうまく機能します。
ポストプロセッサBean(簡潔にするためにトリミング)を示す関連するSpring構成要素は次のとおりです。
エンティティマネージャファクトリは次のように定義されています。
私はSpringとJPAの比較的初心者なので、明らかな間違いを犯した場合は気楽にやってください。
ありがとうスティーブ
glassfish - GlassFish で JavaDB (Derby) を自動的に開始する
GlassFish v3 オープン ソース エディションを実稼働環境にデプロイする予定です。私が必要としている JavaDB (Apache Derby) が付属しています。唯一の問題は、GlassFish の開始時に JavaDB がデフォルトで開始されないことです。コマンドラインに移動して、次のように入力する必要があります。
サーバー (GlassFish) が起動するたびにデータベースを自動的に起動する方法はありますか? 私は自分のアプリケーションを開発している間、毎回手動でそれを行うのが嫌いでした.
前もって感謝します
jakarta-ee - glassfishv3クラスパス設定
私はglassfishv3でj2eeアプリを開発しています。これは、jboss5アプリサーバーにデプロイされたEJBをリモートで呼び出します。これが機能するためには、私のアプリはクラスパスにjbossクライアントjarを持っている必要があります。クライアントのjarファイルをアプリケーションと一緒にパッケージ化することでこれを行うことができましたが、これは約10 MBのサイズを消費するため、アプリのアップロードが問題になります。
これらのjarファイルを別の場所に配置して、gfがそれらを取得し、アプリで保持する必要がないようにするにはどうすればよいですか?
proxy - Glassfish v3をpacファイルで構成しますか?
Glassfishv3にWebサービスクライアントをデプロイしています。プロキシアクセスが必要なサーバーにアクセスする必要があります。pacファイル(プロキシ自動設定)がありますが、これを使用してGlassfishインスタンスを設定し、クライアントがサービスにアクセスできるようにするかどうか、またはどのように使用できるかがわかりません。それが実行できない場合、プロキシされたサーバーへのアクセスを設定する別の方法はありますか?
ありがとう!
ejb-3.0 - glassfishv3リモートjbossEJBクライアント
Glassfishv3からJboss5にデプロイされたEJB3ステートレスの呼び出しに関していくつかの興味深い問題があります。
アプリでJbossクライアントjarをパックすることで、glassfish2.1とjboss5でこれを正常に実行できましたが、gf3で同じことを実行すると、多くのjbossクラス($ {jboss home / client}以外)でClassNotFoundExceptionが発生します。 )そして私はそれらのjarファイルを追加し続けますが、それに終わりはないようです。
なぜgf3はgf2よりも多くのjbossクラスを必要とします、私は同じコードを使用します!?
また、ドメインlib dirに配置する以外に、そのjarファイルを検索するようにgf3を構成するにはどうすればよいですか?
ヘルプのためのTnx:)
jakarta-ee - クラスパス内の他のjarを参照する空のjarファイルを作成する方法
こんにちは、
j2ee アプリが依存する多数の jar があるため、クラスパスでそれらの jar ファイルを参照するマニフェスト属性を持つ単一の jar ファイルを作成したいと考えています。次に、このファイルをglassfish lib dirに配置して、言及されたjarがアプリケーションのクラスパスになるようにします。
唯一の問題は、この単一の jar ファイルを作成する方法がわからないことです。
提案?
よろしく
netbeans - NetBeansを使用してEJBをテストするにはどうすればよいですか?
私はnetbeansで超単純なEJBプロジェクトをテストしようと奮闘してきました。私は自分のJavaブックからいくつかの例を試しましたが、オンラインで見つけたさらに簡単な例(http://javadude.wordpress.com/2010/02/22/tutorial-most-simple-test-application-for-embedded-glassfish -netbeans-hudson /)。これは、2つの数値を追加するだけの超基本的なEJBです。それだけです。正常に動作しますが、どのようにテストしようとしても、何も機能しません。さらに不可解なことに、テストした2つの異なるラップトップで2つの異なるエラーが発生します。明らかに私は非常に間違ったことをしています...どんなアドバイスもとてもありがたいです。
私が得る1つのエラーは次のとおりです:
テストケース:testAddNumbers(bean.MyBeanTest):エラーが発生しました利用可能なEJBContainerプロバイダーがありません:プロバイダー名が見つかりませんでした。
javax.ejb.EJBException:使用可能なEJBContainerプロバイダーがありません:プロバイダー名が見つかりませんでした。
もう1つは:
重大:アプリのデプロイ中に例外が発生しましたjava.lang.IllegalArgumentException:無効なejb jar [WebTestEmb.jar]:ゼロのejbが含まれています。注:1。有効なejb jarには、少なくとも1つのセッション、エンティティ(1.x / 2.xスタイル)、またはメッセージ駆動型Beanが必要です。2. EJB3 +エンティティBean(@Entity)はPOJOであり、ライブラリjarとしてパッケージ化してください。3. jarファイルにEJBコンポーネントレベルのアノテーション(@ Stateless、@ Stateful、@ MessageDriven、@ Singleton)でアノテーションが付けられた有効なEJBが含まれている場合は、server.logをチェックしてアノテーションが適切に処理されたかどうかを確認してください。
明らかに、私のプロジェクトにはejbがあります。上記のURLの指示とまったく同じように作成されています。
ありがとう!
performance - JavaEE 6 アプリケーション (Glassfish v3) のパフォーマンス - ロギング、DI、データベース操作、EJB、マネージド Bean
私が使用する重要なテクノロジは、Glassfish v3、JSF 2.0、JPA 2.0、EclipseLink 2.0.2、log4j 1.2.16、commons-logging 1.1.1 です。
私の問題は、アプリケーションの一部がかなり遅いことです。これをnetbeans 6.8 プロファイリング機能で分析しました。
I. ロギング- log4j と apache commons ロギングを使用して、ロギング ファイルとコンソールにログを生成します。ログは、glassfish のサーバー ログにも表示されます。次のようにロガーを使用します。
問題は、このような短いステートメントに時間がかかる場合があることです (約 800 ミリ秒)。java.util.logging に切り替えると、それほど悪くはありませんが、非常に遅くなります (200 ミリ秒帯域)。どうしたの?ロギングが必要です...更新- Netbeans 6.8 から Netbeans 6.9.1 に切り替えた後、ロギングが遅いという問題が解決されました。- ログがコンソールに出力されると、Netbeans 6.8 が非常に遅くなる可能性があります?! したがって、Log4J やコモンズのロギングとは何の関係もありませんでした。
Ⅱ.DB 操作: 次の EJB の find メソッドを初めて呼び出すと、2,4 秒かかります。追加の呼び出しは数ミリ秒しか持続しません。では、なぜ最初の操作にそれほど時間がかかるのでしょうか? これは (単に) 接続の確立によるものですか、それとも XFacade の依存性インジェクションと関係がありますか? これらのインジェクションはいつ実行されますか?:
III. 依存性注入、JNDI ルックアップ: DI のような ( @EJB ...) とパフォーマンスに関する InitialContext ルックアップに違いはありますか? ローカル、リモート、およびインターフェースなしの EJB の注入に違い (パフォーマンス ビュー) はありますか?
IV. Managed Beans - ViewScope は非常にバグが多く、Request Scoped は常に実用的であるとは限らないため、多くの Session Scoped Bean を使用しています。代替手段はありますか?- これらの Bean は低速ではありませんが、セッション全体でサーバー側のメモリに負荷がかかるためです。また、ユーザーがログアウトすると、しばらく時間がかかります!
V. EJB - MDB のみのセッション Bean とシングルトン Bean は使用しません。多くの場合、@EJBアノテーションを使用して他の Bean を注入します。1 つの Singleton Bean は、@Scheduleアノテーションを使用して繰り返し操作を開始します。私が見つけた興味深いことは、EJB 3.1 以降、@Asynchronousアノテーションを使用してセッション Bean メソッドを非同期にすることができるということです。パフォーマンスに関して EJB を実装する場合、一般的に何を考慮する必要がありますか?
特に上記の問題に関して、javaeeアプリケーションのパフォーマンスを向上させるための一般的および/または特定のヒントを誰かが教えてくれるかもしれません。ありがとう!