0
我想在我的Java Web应用程序中使用记录器。缝焊(前焊接扩展项目)未初始化
我正在使用JBossAS 6.0.0.final,cdi(weld),jsf等。Seam焊接建议使用抽象记录器并不是绑定到具体实现(slf4j,log4j等),使用jboss -logging api。
为了得到这个记录在你的代码需要编写
@ Inject
org.jboss.logging.Logger log
缝solder.jar有此logger的生产者。
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]
这是由于缝solder.jar还没有META-INF/beans.xml的文件,它是必要的cdi容器。
如果手动添加seam-solder.jar中的beans.xml文件,那么该应用程序工作良好。
如何避免黑客?
要构建我的应用程序,我使用maven,所以我的解决方案不舒服,不好。
PS:以前的焊接扩展项目包含jar中的META-INF/beans.xml文件。