Ich möchte Logger in meiner Java-Webanwendung verwenden.Naht Lötmittel (früher Weld-Erweiterungen Projekt) ist nicht initialisiert
Ich benutze JBossAS 6.0.0.final, cdi (weld), jsf ... usw. Nahtlot schlägt vor, einen abstrakten Logger zu verwenden, bindet nicht an eine konkrete Implementierung (slf4j, log4j, etc) mit jboss -logging api.
Um diesen Logger im Code zu bekommen
@ Inject
org.jboss.logging.Logger log
naht solder.jar hat der Hersteller für diesen Logger schreiben müssen.
package org.jboss.seam.solder.log;
...
class LoggerProducers
{
@ Produces
org.jboss.logging.Logger produceLog (InjectionPoint injectionPoint) {}
}
Wenn ich meine Anwendung bereitstellen, bekomme ich einen Fehler
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]
Dies ist aufgrund der naht solder.jar hat nicht META-INF/beans.xml-Datei, und es ist notwendig, cdi-Behälter.
Wenn Sie manuell die Datei beans.xml in seam-lot.jar hinzufügen, funktioniert die Anwendung WELL.
Wie ohne Hacks zu tun?
Um meine Anwendung zu bauen, benutze ich Maven, so ist meine Lösung nicht bequem und nicht gut.
PS: Ehemaliges Weld-Erweiterungsprojekt enthielt die Datei META-INF/beans.xml in jar.