Je veux utiliser logger dans mon application web java. J'utilise JBossAS 6.0.0.final, cdi (soudure), jsf ... etc Seam soudure propose d'utiliser un logger abstrait ne lie pas à une implémentation concrète (slf4j, log4j, etc) en utilisant jboss -logging api.soudure soudure (ancien projet de soudure-extensions) n'est pas initialisée
Afin d'obtenir cet enregistreur dans votre code devra écrire
@ Inject
org.jboss.logging.Logger log
couture solder.jar a le producteur pour cet enregistreur.
package org.jboss.seam.solder.log;
...
class LoggerProducers
{
@ Produces
org.jboss.logging.Logger produceLog (InjectionPoint injectionPoint) {}
}
Quand je déployer mon application, je reçois une erreur
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]
Cela est dû à la couture-solder.jar n'a pas le fichier META-INF/beans.xml, et il est nécessaire conteneur cdi.
Si vous souhaitez ajouter manuellement le fichier beans.xml dans seam-solder.jar, l'application fonctionne alors correctement.
Comment faire sans hacks?
Pour construire mon application, j'utilise maven, donc ma solution n'est pas confortable et pas très bien. PS: L'ancien projet weld-extensions contenait le fichier META-INF/beans.xml dans le fichier jar. Avec soudure-soudure-3.0.0.Beta1