Введение регистратора, сварки

Я пытаюсь заменить стандартную инициализацию регистратора некоторой инжекцией

1-й.

Я пытался использовать сварку сварки, входящую в систему боб/веб-сервисы не сохраняющий состояние

@Stateless
@WebService
public class EchoSSL {

    @Inject
    private Logger log;


    public EchoSSL() {
    }

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

Но это не работающий на меня.. я получаю java.lang.reflect. InvocationTargetException

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

Что пропущено?

2-й

чем я пробую это учебное руководство, на которое ссылаются к этому - Пользовательские Инжекции

Но это также dosen't справка.

зависимости знатока -


        
            org.jboss.weld
            weld-logger
            1.0.0-CR2
        
        
            org.jboss.weld
            weld-extensions
            1.0.0.Alpha1
        
        
            org.jboss.weld
            weld-api
            1.0-CR2
        
        
            org.jboss.weld
            weld-core
            1.0.1-CR2
        
    

Q1: Каково правило инжекции Регистратора сварки в ejb / веб-сервисы?

Q2: это могла быть проблема wsdl/EJB/WebService?

1
задан Matt Handy 11 March 2012 в 21:59
поделиться

4 ответа

Убедитесь, что ваш bean-компонент находится в архиве bean-компонентов, т.е. что у вас есть META-INF / beans.xml

помимо расширения weld , с чем я не могу вам помочь, если вы не укажете исключение целиком, вы можете создать производителя, который @Produces a Logger

0
ответ дан 3 September 2019 в 00:44
поделиться

Производитель регистратора slf4j по умолчанию определен в Weld Extensions . Вы можете увидеть, как записывается производитель здесь , если вы хотите подключить свой собственный, не включая все расширения Weld Extensions.

0
ответ дан 3 September 2019 в 00:44
поделиться

Вот мой подход:

Добавьте следующие зависимости в 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>

Вставьте логгер и используйте его как обычно:

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

public class Example {
  @Inject
  private Logger logger;

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

Если вы хотите использовать Log4J вместо SLF4J-JDK14-binding, я нашел эту страницу. Я попробовал, но не смог заставить его работать, так что я по-прежнему придерживаюсь своего собственного решения.

2
ответ дан 3 September 2019 в 00:44
поделиться

в данном случае я не поместил bean.xml в META-INF.

0
ответ дан 3 September 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: