Domanda

che sto cercando di sostituire l'inizializzazione logger standard con qualche iniezione

1-st.

I stava cercando di utilizzare saldatura saldatura accedendo in bean senza stato / webservices

@Stateless
@WebService
public class EchoSSL {

    @Inject
    private Logger log;


    public EchoSSL() {
    }

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

Ma non funziona per me .. io ottenere 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)   Causato da:   java.lang.reflect.InvocationTargetException   a   sun.reflect.NativeMethodAccessorImpl.invoke0 (Native   Method) 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 maggiori causati da:   javax.xml.ws.soap.SOAPFaultException:   javax.ejb.EJBException a   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)   a $ Proxy484.sayHello (fonte sconosciuta)   ... 29 maggiori causati da:   javax.ejb.EJBException a   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)   a $ Proxy464.sayHello (fonte sconosciuta)   a   sun.reflect.NativeMethodAccessorImpl.invoke0 (Native   Method) 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 maggiori causati da:   java.lang.NullPointerException a   ua.eset.inferno.heresy.ws.security.Hello.sayHello (Hello.java:33)   a   sun.reflect.NativeMethodAccessorImpl.invoke0 (Native   Method) 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 (Native   Method) 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 .__ intercetta (BaseContainer.java:5215)   a   com.sun.ejb.containers.BaseContainer.intercept (BaseContainer.java:5203)   a   com.sun.ejb.containers.WebServiceInvocationHandler.invoke (WebServiceInvocationHandler.java:188)   ... altro 66

Che cosa è mancato?

2-nd

che provo questo esercitazione cui viene fatto riferimento a questo - Le iniezioni personalizzati

Ma anche dosen`t aiuto.

dipendenze 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>

D1: Qual è lo stato di iniezione Logger saldare nei servizi ejb / web

?

Q2:? Potrebbe essere WSDL / EJB / WebService problema

È stato utile?

Soluzione

Assicurati che il tuo Bean è in un archivio bean - vale a dire che si deve META-INF/beans.xml

A parte l'estensione della saldatura, che io non posso aiutarti con meno che si dà tutta eccezione, è possibile creare un produttore che @Produces un Logger

Altri suggerimenti

Questo è il mio approccio:

Aggiungere le seguenti dipendenze al 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>

Inject il Logger e usarlo come al solito:

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

public class Example {
  @Inject
  private Logger logger;

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

Se si vuole utilizzare Log4J al posto del SLF4J-JDK14 vincolante, ho trovato questa pagina . Ho provato, ma non ho potuto farlo funzionare così ho ancora bastone con la mia soluzione.

L'impostazione predefinita slf4j produttore logger è definito in Weld estensioni . Si può vedere come il produttore è scritto qui se si voleva legare il proprio senza includere tutti Weld estensioni.

in questo caso ho messo haven`t bean.xml in META-INF.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top