Pregunta

Estoy tratando de reemplazar la inicialización del registrador estándar por algunos inyección

1-st.

Yo estaba tratando de utilizar soldadura de soldadura el registro en bean sin estado / webservices

@Stateless
@WebService
public class EchoSSL {

    @Inject
    private Logger log;


    public EchoSSL() {
    }

    public String echo(String msg) {
        log.debug("Log test");
        return "Echoing: " + msg;
    }
}

Pero no trabajo para mí .. me sale java.lang.reflect.InvocationTargetException

javax.servlet.ServletException: java.lang.reflect.InvocationTargetException a org.glassfish.webservices.monitoring.WebServiceTesterServlet.doPost (WebServiceTesterServlet.java:326) a org.glassfish.webservices.monitoring.WebServiceTesterServlet.invoke (WebServiceTesterServlet.java:102) a org.glassfish.webservices.EjbWebServiceServlet.service (EjbWebServiceServlet.java:110) a javax.servlet.http.HttpServlet.service (HttpServlet.java:847) a com.sun.grizzly.http.servlet.FilterChainImpl.doFilter (FilterChainImpl.java:195) a com.sun.grizzly.http.servlet.FilterChainImpl.invokeFilterChain (FilterChainImpl.java:139) a com.sun.grizzly.http.servlet.ServletAdapter.doService (ServletAdapter.java:376) a com.sun.grizzly.http.servlet.ServletAdapter.service (ServletAdapter.java:329) a com.sun.grizzly.tcp.http11.GrizzlyAdapter.service (GrizzlyAdapter.java:166) a com.sun.enterprise.v3.server.HK2Dispatcher.dispath (HK2Dispatcher.java:100) a com.sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java:245) a com.sun.grizzly.http.ProcessorTask.invokeAdapter (ProcessorTask.java:791) a com.sun.grizzly.http.ProcessorTask.doProcess (ProcessorTask.java:693) a com.sun.grizzly.http.ProcessorTask.process (ProcessorTask.java:954) a com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:170) a com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter (DefaultProtocolChain.java:135) a com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java:102) a com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java:88) a com.sun.grizzly.http.HttpProtocolChain.execute (HttpProtocolChain.java:76) a com.sun.grizzly.ProtocolChainContextTask.doCall (ProtocolChainContextTask.java:53) a com.sun.grizzly.SelectionKeyContextTask.call (SelectionKeyContextTask.java:57) a com.sun.grizzly.ContextTask.run (ContextTask.java:69) a com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java:330) a com.sun.grizzly.util.AbstractThreadPool $ Worker.run (AbstractThreadPool.java:309) a java.lang.Thread.run (Thread.java:619) Causado por: java.lang.reflect.InvocationTargetException a sun.reflect.NativeMethodAccessorImpl.invoke0 (Nativo Método) a sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) a sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) a java.lang.reflect.Method.invoke (Method.java:597) a org.glassfish.webservices.monitoring.WebServiceTesterServlet.doPost (WebServiceTesterServlet.java:297) ... 24 más causada por: javax.xml.ws.soap.SOAPFaultException: javax.ejb.EJBException en com.sun.xml.ws.fault.SOAP11Fault.getProtocolException (SOAP11Fault.java:189) a com.sun.xml.ws.fault.SOAPFaultBuilder.createException (SOAPFaultBuilder.java:130) a com.sun.xml.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:119) a com.sun.xml.ws.client.sei.SyncMethodHandler.invoke (SyncMethodHandler.java:89) a com.sun.xml.ws.client.sei.SEIStub.invoke (SEIStub.java:140) en $ Proxy484.sayHello (origen desconocido) ... 29 más causada por: javax.ejb.EJBException en com.sun.ejb.containers.BaseContainer.processSystemException (BaseContainer.java:5070) a com.sun.ejb.containers.BaseContainer.completeNewTx (BaseContainer.java:4968) a com.sun.ejb.containers.BaseContainer.postInvokeTx (BaseContainer.java:4756) a com.sun.ejb.containers.WebServiceInvocationHandler.invoke (WebServiceInvocationHandler.java:200) en $ Proxy464.sayHello (origen desconocido) a sun.reflect.NativeMethodAccessorImpl.invoke0 (Nativo Método) a sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) a sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) a java.lang.reflect.Method.invoke (Method.java:597) a org.glassfish.webservices.InvokerImpl.invoke (InvokerImpl.java:78) a org.glassfish.webservices.EjbInvokerImpl.invoke (EjbInvokerImpl.java:78) a com.sun.xml.ws.server.InvokerTube $ 2.invoke (InvokerTube.java:146) a com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke (EndpointMethodHandler.java:257) a com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest (SEIInvokerTube.java:95) a com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:629) a com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:588) a com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:573) a com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:470) a com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process (AbstractTubeImpl.java:112) a org.glassfish.webservices.MonitoringPipe.process (MonitoringPipe.java:138) a com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest (PipeAdapter.java:115) a com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:629) a com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:588) a com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:573) a com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:470) a com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process (AbstractTubeImpl.java:112) a com.sun.xml.ws.tx.service.TxServerPipe.process (TxServerPipe.java:306) a com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest (PipeAdapter.java:115) a com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:629) a com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:588) a com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:573) a com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:470) a com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process (AbstractTubeImpl.java:112) a com.sun.enterprise.security.webservices.CommonServerSecurityPipe.processRequest (CommonServerSecurityPipe.java:195) a com.sun.enterprise.security.webservices.CommonServerSecurityPipe.process (CommonServerSecurityPipe.java:127) a com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest (PipeAdapter.java:115) a com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:629) a com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:588) a com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:573) a com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:470) a com.sun.xml.ws.server.WSEndpointImpl $ 2.Process (WSEndpointImpl.java:295) a com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle (HttpAdapter.java:519) a com.sun.xml.ws.transport.http.HttpAdapter.handle (HttpAdapter.java:288) a com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle (ServletAdapter.java:143) a org.glassfish.webservices.Ejb3MessageDispatcher.handlePost (Ejb3MessageDispatcher.java:116) a org.glassfish.webservices.Ejb3MessageDispatcher.invoke (Ejb3MessageDispatcher.java:87) a org.glassfish.webservices.EjbWebServiceServlet.dispatchToEjbEndpoint (EjbWebServiceServlet.java:196) a org.glassfish.webservices.EjbWebServiceServlet.service (EjbWebServiceServlet.java:127) ... 22 más causada por: java.lang.NullPointerException en ua.eset.inferno.heresy.ws.security.Hello.sayHello (Hello.java:33) a sun.reflect.NativeMethodAccessorImpl.invoke0 (Nativo Método) a sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) a sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) a java.lang.reflect.Method.invoke (Method.java:597) a org.glassfish.ejb.security.application.EJBSecurityManager.runMethod (EJBSecurityManager.java:1056) a org.glassfish.ejb.security.application.EJBSecurityManager.invoke (EJBSecurityManager.java:1128) a com.sun.ejb.containers.BaseContainer.invokeBeanMethod (BaseContainer.java:5243) a com.sun.ejb.EjbInvocation.invokeBeanMethod (EjbInvocation.java:615) a com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext (InterceptorManager.java:797) a com.sun.ejb.EjbInvocation.proceed (EjbInvocation.java:567) a com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround (SystemInterceptorProxy.java:157) a com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke (SystemInterceptorProxy.java:139) a sun.reflect.NativeMethodAccessorImpl.invoke0 (Nativo Método) a sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) a sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) a java.lang.reflect.Method.invoke (Method.java:597) a com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept (InterceptorManager.java:858) a com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext (InterceptorManager.java:797) a com.sun.ejb.containers.interceptors.InterceptorManager.intercept (InterceptorManager.java:367) a com.sun.ejb.containers.BaseContainer .__ intercepción (BaseContainer.java:5215) a com.sun.ejb.containers.BaseContainer.intercept (BaseContainer.java:5203) a com.sun.ejb.containers.WebServiceInvocationHandler.invoke (WebServiceInvocationHandler.java:188) ... 66 más

¿Qué se pierde?

2-nd

de lo que intento esto tutorial que se hace referencia a esto - Las inyecciones de encargo

Pero también dosen`t ayuda.

dependencias Maven -

<dependencies>
        <dependency>
            <groupId>org.jboss.weld</groupId>
            <artifactId>weld-logger</artifactId>
            <version>1.0.0-CR2</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.weld</groupId>
            <artifactId>weld-extensions</artifactId>
            <version>1.0.0.Alpha1</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.weld</groupId>
            <artifactId>weld-api</artifactId>
            <version>1.0-CR2</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.weld</groupId>
            <artifactId>weld-core</artifactId>
            <version>1.0.1-CR2</version>
        </dependency>
    </dependencies>

P1: ¿Cuál es la regla de la inyección Logger soldar en los servicios EJB / web

?

P2:? Podría ser WSDL / EJB / WebService tema

¿Fue útil?

Solución

Asegúrese de que el frijol es en un archivo de frijol - es decir, que tiene META-INF/beans.xml

Además de la extensión de la soldadura, que no puedo ayudar con menos que dar toda la excepción, usted puede crear un productor que @Produces un Logger

Otros consejos

Este es mi método:

Añadir las siguientes dependencias de la pom.xml:

<!-- SL4J API -->
 <dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-api</artifactId>
 <version>1.6.0</version>
 </dependency>

 <!-- SLF4J JDK14 Binding  -->
 <dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-jdk14</artifactId>
 <version>1.6.0</version>
 </dependency>

 <!-- Injectable Weld-Logger -->
 <dependency>
 <groupId>org.jboss.weld</groupId>
 <artifactId>weld-logger</artifactId>
 <version>1.0.0-CR2</version>
 </dependency>

Inyectar el registrador y lo utilizan como de costumbre:

import javax.inject.Inject;
import org.slf4j.Logger;

public class Example {
  @Inject
  private Logger logger;

  public void exampleFunc() {
    logger.info("Hello Logger!");
  }
}

Si quiero usar Log4J en lugar de la SLF4J-jdk14 vinculante, encontré esta página . Lo probé, pero no pude conseguir que funcione, así que todavía quedo con mi propia solución.

El valor predeterminado slf4j productor logger se define en Weld Extensiones . Se puede ver cómo el productor está escrito aquí si desea conectar su propio sin incluir todas las extensiones de soldadura.

en este caso I `t del asilo coloqué bean.xml en META-INF.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top