0

我想在我的 java web 应用程序中使用记录器。

我正在使用 JBossAS 6.0.0.final、cdi (weld)、jsf ... 等。Seam Solder 建议使用抽象记录器不绑定到使用 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 容器是必需的。

如果手动在 seam-solder.jar 中添加 beans.xml 文件,则应用程序运行良好。

没有黑客怎么办?

为了构建我的应用程序,我使用了 maven,所以我的解决方案不舒服而且不好。

PS:以前的焊接扩展项目在 jar 中包含 META-INF/beans.xml 文件。

4

1 回答 1

1

使用 seam-solder-3.0.0.Beta1 应该不需要修改 jar

于 2011-01-13T15:25:50.427 回答