Я хочу использовать logger в своем веб-приложении на Java.
Я использую JBossAS 6.0.0.final, cdi (weld), jsf ... и т. Д. Припой шва предлагает использовать абстрактный логгер, а не привязываться к конкретной реализации (slf4j, log4j и т. Д.) С использованием jboss- регистрация 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.
Если вручную добавить файл beans.xml в seam-solder.jar, то приложение работает ХОРОШО.
Как обойтись без хаков?
Для создания своего приложения я использую maven, поэтому мое решение неудобно и НЕ подойдет.
PS: Бывший проект расширений сварных швов содержал файл META-INF / beans.xml в jar.