我想在我的java Web应用程序中使用logger。
我正在使用JBossAS 6.0.0.final,cdi(焊接),jsf ......等。缝焊接建议使用抽象记录器并不是要使用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:以前的焊接扩展项目包含jar中的META-INF / beans.xml文件。
答案 0 :(得分:1)
用seam-solder-3.0.0.Beta1应该不需要修改jar