問題タブ [openwebbeans]

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

jsf - JAR 内の beans.xml により、java.lang.NoClassDefFoundError: javax.faces.component.behavior.Behavior が発生します。

私は Websphere 8.5 とその内部 Java EE フレームワーク、DI 用の Apache OpenWebBeans とビュー用の Apache MyFaces を使用しています。「@Named」で注釈が付けられたいくつかの Bean を含む JAR もあります (つまり、それらは OpenWebBeans マネージド Bean です)。この JAR は、Web アプリケーションの「WEB-INF/lib」ディレクトリと、アプリケーションのクラスパスにあります。

CDI 実装で Bean を見つけて管理するすべての JAR に「beans.xml」ファイルを配置する必要があると言われました。私はそれを行いました(アプリケーションの「META-INF」フォルダーとJARの同じフォルダーに「beans.xml」ファイルがあります)。Tomcat 7ではすべてが問題なく動作します(JSFページでBeanにアクセスできます。すべてが注入され、問題なく解決されるなど)。アプリケーションの「WEB-INF/lib」内で Apache Open Web Beans 1.2 および MyFaces 2.0 JAR を使用して Tomcat を実行しています。

ここで、問題: Websphere で、同じ構成 (アプリケーションの「WEB-INF/lib」内にフレームワーク JAR がなく、Bean の JAR のみ) で、JSF クラス「javax.faces.component. behavior.Behavior" ページを読み込もうとするたびに (ページは読み込まれません)。奇妙なことに、アプリケーションと JAR からすべての「beans.xml」ファイルを削除すると、すべてが JSF で期待どおりに機能します (もちろん、「beans.xml」が存在しないため、OpenWebBeans Bean のロードと管理を除く)。

この問題をどこでも検索しましたが、手がかりが見つかりません。サーバーの JAR を検索して "WEBSPHERE_INSTALL\plugins\javax.j2ee.jsf.jar" で見つけたので (また、"beans.xml" がなければ、このクラスが見つかり、すべてが正常に動作します) が、アプリケーションのクラスローダーに「beans.xml」ファイルが存在する場合に、この JAR がロードされない理由がわかりません。誰か助けてくれませんか?

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

java - @PersistenceContext は常に null

Delta Spike ( ) を使用して単体テスト内から CDI (Open Web Beans を使用) を動作させようとしています@RunWith(CdiTestRunner.class)。依存性注入は正常に機能していますが、私の EntityManagerFactory は常に null です:

persistence.xmlセッション ファクトリを手動で作成できるので、問題がないことはわかっています。

他のすべての注射は正常に機能しています。何が欠けているか知っている人はいますか?

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

tomcat - openwebbeans 1.5.0より前に開始するomnifaces?

Java 8 / Tomcat 8 / OpenWebBeans 1.5.0 / MyFaces 2.2.8 / DeltaSpike 1.3.0 を使用しています。

openwebbeans-tomcat7 モジュールを使用したいので、次の jar を tomcat/lib に配置しました。

  • openwebbeans-web-1.5.0.jar
  • openwebbeans-tomcat7-1.5.0.jar
  • openwebbeans-spi-1.5.0.jar
  • openwebbeans-resource-1.5.0.jar
  • openwebbeans-jsf-1.5.0.jar
  • openwebbeans-impl-1.5.0.jar
  • openwebbeans-el22-1.5.0.jar
  • xbean-finder-shaded-4.1.jar
  • xbean-asm5-shaded-4.1.jar
  • myfaces-impl-2.2.8.jar
  • myfaces-api-2.2.8.jar
  • geronimo-atinject_1.0_spec-1.0.jar
  • geronimo-annotation_1.2_spec-1.0.jar
  • geronimo-validation_1.0_spec-1.1.jar
  • geronimo-stax-api_1.0_spec-1.0.jar
  • geronimo-servlet_3.0_spec-1.0.jar
  • geronimo-jcdi_1.1_spec-1.0.jar
  • geronimo-interceptor_1.2_spec-1.0.jar
  • commons-digester-1.8.jar
  • commons-beanutils-1.8.3.jar
  • commons-collections-3.2.jar
  • commons-logging-1.1.1.jar
  • commons-codec-1.3.jar

また、優れた omnifaces ライブラリを使用することも大好きです。したがって、私の webapp には依存関係として omnifaces があり、WEB-INF/lib にあります。

私が使用している 2 つのバージョン、1.8.1 と 2.0 の CDI には問題があります。openwebbeans が開始される前に omnifaces が開始されるように思われるため、CDI が見つかりません。

1.8.1 では、この問題によって例外が発生しますが、このバージョンでは CDI が必須ではないため、ブロックされません。2.0 では、omnifaces 2.0 には要件として CDI があるため、webapp の起動が妨げられます。

1.8.1 では、ログは次のとおりです。

2.0 では、次のようになります。

この問題はオムニフェイスでのみ発生します。OWB は私の webapp で動作します。

開始シーケンスは、コンテナーによっては非常に変動します (たとえば、 http: //javaeesquad.blogspot.fr/2015/03/getting-notified-when-java-ee.html を参照してください)。

OmniFaces はすでに Glassfish の特殊なケースを処理していることがわかります。

public class ApplicationInitializer は ServletContainerInitializer を実装します {

そしてクラス Hacks で:

OWB にそのような特殊なケースがある可能性はありますか? 属性が設定されていることをテストすることは、私にとって十分公平です。

または、オムニフェイスのインスタンス化を延期することは可能ですか?

最後に、次のような方法で CDI 通知を待ちませんか。

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

jakarta-ee - Maven: openejb でテストを実行中に javax.enterprise.context.ContextNotActiveException

OpenEjb とコンテナが埋め込まれた Junit の助けを借りて、自分の Java-ee プロジェクトの単体テストと統合テストをいくつか作成しました。テストは Eclipse で正常に実行されており、Bean (CDI/EJB) が注入され、正常に動作しています。しかし、maven と Surefire でテストを開始すると、次のエラーが発生します。

何が間違っている可能性がありますか?クラスパスの問題か何かのようですが、openwebbeans-spi と openwebbeans-impl を明示的に追加してもうまくいきませんでした。

テストクラスで次の行を使用します。

そして、私は次のopenejb-junit.propertiesを持っています:

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

こんにちは、ハルスです。

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

java - SLF4J ロガーのインジェクション - 1 回だけインジェクト

org.slf4j.Logger上部で静的として宣言してクラス名を指定するのではなく、それを必要とするクラスにa を挿入したいと考えています。

そうするために、私はそのようなプロデューサーメソッドを作成しました

そして、それを使用@Injectして注入しますが、それを要求する最初のクラスに対してのみ注入を行うようです。org.slf4j.Logger注入ポイントを持つ他のすべてのクラスは、NPE になります。

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

maven - アップグレードされた OpenWebBeans で Tomee Maven プラグインを使用する

Tomee Maven プラグインを使用して、CDI イベント パッシングを使用するアプリを開発しています。私は現在、ジェネリック型パラメーターを持つイベントを発生させることができません。私が知る限り、これは Tomee インスタンスがこれをサポートしていない openwebbeans 1.2.7 を使用したいためです。openwebbeans 1.5.0 以降はこれをサポートしているようですが、プラグインでこのバージョンを使用する方法 (または可能かどうか) がわかりません。

プラグイン構成を使用してライブラリを新しいバージョンに置き換えようとしましたが、これによりさらに例外が発生します (クラス定義がないなど)。

プラグインのバージョンは次のとおりです。