0

Java Web アプリケーションでロガーを使用したいと考えています。

私は JBossAS 6.0.0.final、cdi (weld)、jsf などを使用しています。Seam はんだは、jboss-logging api を使用して具体的な実装 (slf4j、log4j など) に関連付けられていない抽象ロガーを使用することを提案しています。

コードでこのロガーを取得するには、次のように記述する必要があります

@ Inject 
org.jboss.logging.Logger log 

seam-solder.jar には、このロガーのプロデューサーがあります。

package org.jboss.seam.solder.log; 
... 
class LoggerProducers 
{ 
   @ Produces 
   org.jboss.logging.Logger produceLog (InjectionPoint injectionPoint) {} 

} 

アプリケーションをデプロイすると、エラーが発生します

15:51:18,300 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=vfs:///C:/Java/jboss-6.0.0.Final/server/default/deploy/kamis-web-client.5.0.0-SNAPSHOT.ear_WeldBootstrapBean state=Create: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Logger] with qualifiers [@Default] at injection point [[field] @Inject private ru.kamis.suite.webclient.web.breadcrumbs.BreadcrumbsManager.log]

これは、seam-solder.jar に META-INF/beans.xml ファイルがなく、cdi コンテナーに必要なためです。

beans.xml ファイルを seam-solder.jar に手動で追加すると、アプリケーションは正常に動作します。

ハックなしで行う方法は?

アプリケーションを構築するためにmavenを使用しているため、私のソリューションは快適ではなく、うまくいきません。

PS: 以前のweld-extensions プロジェクトには、jar 内の META-INF/beans.xml ファイルが含まれていました。

4

1 に答える 1

1

seam-solder-3.0.0.Beta1 では、jar を変更する必要はありません。

于 2011-01-13T15:25:50.427 に答える