【发布时间】:2011-06-08 12:59:57
【问题描述】:
我想在我的 java web 应用程序中使用记录器。
我正在使用 JBossAS 6.0.0.final、cdi (weld)、jsf ... 等。Seam Solder 建议使用抽象记录器与使用 jboss- 的具体实现(slf4j、log4j 等)无关日志记录 API。
为了在你的代码中获取这个记录器需要写
@ 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 容器需要。
如果手动在 seam-solder.jar 中添加 beans.xml 文件,则应用程序运行良好。
没有黑客怎么办?
为了构建我的应用程序,我使用了 maven,所以我的解决方案不是很舒服,也不是很好。
PS:以前的weld-extensions 项目在jar 中包含META-INF/beans.xml 文件。
【问题讨论】:
标签: seam cdi jboss-weld seam3