問題タブ [cdi]

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

jpa - DAOがステートレスでない場合、GlassfishはEntityManagerを起動しません

1つの永続ユニットと多くのEJB(サービスおよびDAOレイヤーとして)を含むEJBモジュールを備えたEARアプリケーションがあります。

ただし、ステートレスBeanとしてのDAOは推奨されません。したがって、CDIを使用してこの注釈を作成します。

私のDAOが使用しないように変更された後@Stateless

ただし、Glassfishは、アプリケーションの起動時にエンティティマネージャを起動しません。そして、DAOに電話すると、エンティティマネージャーは違法な状態になっています。

java.lang.IllegalStateException:unitNamenullのEntityManagerFactoryを取得できません

このエラーはGlassfish3でのみ発生し、JBoss AS6では発生しません。JBossAS6を使用すると、起動時にHibernateログを確認できます(ただし、Glassfishでは表示されません)。

一時的な解決策として、以下の内容でステートレスBeanを作成しました。これは美しい解決策ではありませんが、Glassfishでは正常に機能します。

@Statelessでは、 DAOで使用していないときにGlassfishにEntityManagerを強制的に起動させるにはどうすればよいですか?

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

java-ee-6 - Java 6 EEの世界では、正確には「コンテナ管理オブジェクト」とは何ですか?

Glassfishで実行するストラットアクションにCDIを使用しようとしました。しかし、Javaの依存性注入は機能しません。JSFでは機能しますが、ストラットでは機能しません。私が読んだように、containerは、コンテナー管理対象Bean(コンテナーによって作成されたBean)の任意のインスタンスに依存関係を注入します。

では、「コンテナ管理Bean」とは何ですか?POJOはありますか?または、jsf back bean、ejb-beanなどだけですか?

そしてそれはどのように起こりますか?Glassfishには、注入するための特別なクラスローダーがありますか?

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

jakarta-ee - weblogic は CDI Bean をサポートしていますか?

weblogic 11g バージョン 10.3.2.0 で作業を開始しました

weblogic は CDI Beans をサポートしていますか?

ありがとう

0 投票する
3 に答える
3419 参照

gwt - GWT RequestFactory: リクエストごとに単一の EntityManager を使用する方法

添付されたエンティティRequestFactoryを永続化するには、各リクエストで同じものを使用する必要があります。EntityManager

実装に基づいて独自の Factory クラスをまとめましたThreadLocalが、リソースを適切に解放する方法がわかりません (たとえば、リクエストが終了したことを確認して を呼び出す方法close())。

完全な J2EE/CDI に頼ることなく、単一の EntityManager が特定の ServletRequest 全体で確実に使用されるようにする簡単な方法はありますか? 必要に応じてそのルートをたどりますが、特に GWT に付属する軽量の開発サーバーを引き続き使用したいので、物事をシンプルに保つことを望んでいました。

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

glassfish - Glassfish と java:comp/BeanManager

グラスフィッシュにデプロイする .war アプリケーションがあります。CDI を実行したいので、POJO から java:comp/BeanManager を検索する必要があります。しかし、それは機能しません: BeanManager が単に見つかりません!

なにが問題ですか?

Glassfish で CDI を有効にする必要がありますか? それとも、.ear ファイルでのみ機能しますか?

ありがとう。

0 投票する
10 に答える
10494 参照

java - Java依存性注入:XMLまたはアノテーション

注釈が人気になっています。Spring-3はそれらをサポートします。CDIはそれらに大きく依存しています(注釈なしでCDIを使用することはできませんよね?)

私の質問はなぜですか?

私はいくつかの問題を聞いた:

  1. 「XMLを取り除くのに役立ちます」。しかし、xmlの何が悪いのでしょうか?依存関係は本質的に宣言型であり、XMLは宣言型には非常に適しています(命令型プログラミングには非常に適していません)。優れたIDE(アイデアのような)を使用すると、xmlの編集と検証が非常に簡単になりますね。

  2. 「多くの場合、インターフェースごとに1つの実装しかありません」。それは真実ではありません!私のシステムのほとんどすべてのインターフェースには、テスト用のモック実装があります。

他に何か問題はありますか?

そして今、XMLの私の利点:

  1. どこにでも何でも注入できます(注釈のあるコードだけでなく)

  2. 1つのインターフェイスの実装が複数ある場合はどうすればよいですか?修飾子を使用しますか?しかし、それは私のクラスにそれが必要とする注射の種類を知ることを強制します。デザインには良くありません。

XMLベースのDIにより、コードが明確になります。各クラスはインジェクションについて認識していないため、任意の方法で構成して単体テストを行うことができます。

どう思いますか?

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

jsf-2 - アプリケーションスコープのマネージドBeanが死にかけていますか?

私はアプリケーションスコープのマネージドBeanを持っています。その主な目的は、利用可能なすべての言語やその他のいくつかの言語など、動的でないデータをアプリケーションの残りの部分に提供することです。

ApplicationController

これはうまくいくようです。しばらくの間。アプリケーションをしばらく(おそらく1時間)そのままにしておくと、非常に奇妙な動作をします。get-methodsは、空のコレクションを返すか、適切に見えるがselectOneMenusの投稿では機能しないオブジェクトを含むコレクションを返すように見えます。再デプロイすると再び機能します。また、デバッグモードをオンにすると再デプロイによって再び機能するため、実験が困難になります。

どのような時間ベースのイベントがこれを引き起こす可能性がありますか?これはセッションのタイムアウトではありません。1分に設定して、この問題を引き起こさずにセッションを終了させることをテストしました。ほとんどの場合、開発サーバーが一晩中邪魔されずに実行された後の朝に発生します。すべてのEJBはステートレスであり、それらが問題であるとは想像できません。おそらくシリアル化の問題でしょうか?

非常に拡散していることをお詫びします。アプリケーションスコープのBeanがどのように機能するかをどういうわけか誤解している可能性があります。どんな助けでもいただければ幸いです。

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

java-ee-6 - @PersistenceContext を pojo クラスに注入する方法

@PersistenceContex アノテーションを使用して PersistenceContex を POJO に注入しようとしています。POJO がそれを実行できるようにする必要があることを読みました。だから私はPOJOクラスをサーブレットに注入します(依存オブジェクトとして管理されるようになりました、私は正しいですか?)が、サーブレットが注入されたオブジェクトからメソッドを呼び出そうとすると、エラーが発生します:

java.lang.IllegalStateException: unitName null の EntityManagerFactory を取得できません

PersistenceContext が POJO に適切に注入されていないようですが、機能させるにはどうすればよいですか?

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

注入ポイント:

SLSB を使用し、@EJB を使用して注入すると、正常に動作します。

..::アップデート::..

スタックトレース:

警告: StandardWrapperValve[ResourcesServlet]: PWC1406: サーブレット ResourcesServlet の Servlet.service() が例外 java.lang.IllegalStateException をスローしました: com.sun.enterprise.container.common.impl.EntityManagerWrapper.init(EntityManagerWrapper で unitName MambaPU の EntityManagerFactory を取得できません.java:121) com.sun.enterprise.container.common.impl.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:162) com.sun.enterprise.container.common.impl.EntityManagerWrapper.createNamedQuery(EntityManagerWrapper.java:554) ) pl.zawi.mamba.core.integration.controllers.implementation.FileEntityControlerImpl.retribFile(FileEntityControlerImpl.java:32) で pl.zawi.mamba.core.face.servlets.ResourcesServlet.doGet(ResourcesServlet.java:60) でjavax.servlet.http.HttpServlet.org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) の javax.servlet.http.HttpServlet.service(HttpServlet.java:847) のサービス (HttpServlet.java:734) org.apache.catalina のorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) の .core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) ) com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) で com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) で org.apache.catalina.core.StandardHostValve. org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:) で (StandardHostValve.java:185) を呼び出します。325) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) com.sun.grizzly .http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) ) com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) で com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) で com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain. java:102) com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) で、com.sun.grizzly.http で。HttpProtocolChain.execute(HttpProtocolChain.java:76) com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) で com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) で com.sun.grizzly .ContextTask.run(ContextTask.java:69) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java) :309) java.lang.Thread.run(Thread.java:662) でjava.lang.Thread.run(Thread.run(Thread.ジャワ:662)java.lang.Thread.run(Thread.run(Thread.ジャワ:662)

persistance.xml:

..::UPDATE2::..

誰かが私のプロジェクトのソースに興味を持っている場合、私は maven を使用しているので、ビルドと実行は簡単なはずです.(MySql ドライブは pom-s に含まれていないので、覚えておいてください)

マンバコア

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

jsf - 溶接CDIをjboss6AS上のJSF1.2EJBアプリケーションに統合します

2晩以来、私は溶接CDIをJSF1.2を使用してEJB3.1アプリケーションに統合しようとしています。@NamedJSFページで注釈付きコントローラーを使用してを呼び出そうとしました。問題は、プロジェクトをデプロイするときに例外がスローされないことと、ページを呼び出すときに例外がスローされないことです。

簡単な例には、次のもののみが含まれます。

コントローラー:

そしてそれは呼び出しです:

THX

0 投票する
3 に答える
20842 参照

dependency-injection - @Inject を使用してステートレス EJB を CDI Weld ManagedBean (jboss 6 AS 上の JSF 1.2 EJB アプリケーション) に注入します。

現在、ステートレス EJB を Jboss 6 AS Final の CDI マネージド コントローラーに挿入しようとしています。コントローラは、JSF ページからアクセスできるコンテキストで管理されます。ステートレス Bean を注入すると、@EJB動作します。ステートレス EJB を注入すると@Inject、次の例外が発生します。

私のコントローラー:

私のステートレス Bean:

Bean のインターフェースには @Local アノテーションが付けられます。

myTestManager を呼び出そうとすると、次の例外が発生します。

WELD-000079 JNDI で EJB が見つかりませんでした: class de.crud.org$jboss$weld$bean-jboss$classloader:id="vfs:$$$usr$local$jboss$server$default$deploy$test$ ear"-SessionBean-TestManagerBean_$$_WeldProxy

ありがとう。