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文件。