我正在尝试通过一些注入替换标准记录器初始化
1-st。
我试图 在无状态 bean/webservices 中使用焊接焊接记录
@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: org.glassfish.webservices.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:326) 的 java.lang.reflect.InvocationTargetException org.glassfish.webservices.monitoring.WebServiceTesterServlet.invoke(WebServiceTesterServlet.java:102) ) 在 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。com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100) 上的服务(GrizzlyAdapter.java:166) 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。 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) 上的 com.sun.grizzly.http.HttpProtocolChain 上的 grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)。在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 在 com.sun.grizzly.ContextTask.doCall(ProtocolChainContextTask.java:53) 执行(HttpProtocolChain.java:76) .run(ContextTask.java:69) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309 ) 在 java.lang.Thread.run(Thread.java:619) 引起:java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.glassfish.webservices.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:297) ... 24 更多原因:javax.xml.ws.soap.SOAPFaultException:com.sun.xml 中的 javax.ejb.EJBException .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) at $Proxy484.sayHello(Unknown Source) ... 29 更多原因:com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5070) at com.sun 的 javax.ejb.EJBException .ejb.containers.BaseContainer。com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4756) 的 completeNewTx(BaseContainer.java:4968) com.sun.ejb.containers.WebServiceInvocationHandler.invoke(WebServiceInvocationHandler.java:200) 的 $Proxy464。 sayHello(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java。 lang.reflect.Method.invoke(Method.java:597) at org.glassfish.webservices.InvokerImpl.invoke(InvokerImpl.java:78) at org.glassfish.webservices.EjbInvokerImpl.invoke(EjbInvokerImpl.java:78) at com .sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146) 在 com.sun.xml.ws.server.sei.EndpointMethodHandler。在 com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber. java:629) 在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588) 在 com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573)在 com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.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.Fiber.__doRun(Fiber.java:629) 在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588) 在 com.sun.xml.ws.api.pipe.Fiber .doRun(Fiber.java:573) 在 com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.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.Fiber.__doRun(Fiber.java:629)在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588) 在 com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573) 在 com.sun .xml.ws.api.pipe.Fiber.runSync(Fiber.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.Fiber.__doRun(Fiber.java:629) 在 com.sun.xml.ws.api.pipe。 Fiber._doRun(Fiber.java:588) 在 com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573) 在 com.sun.xml.ws.api.pipe.Fiber.runSync( Fiber.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.invoke(Ejb3MessageDispatcher.java:87) 的 org.glassfish.webservices.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:116)。webservices.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet.java:196) at org.glassfish.webservices.EjbWebServiceServlet.service(EjbWebServiceServlet.java:127) ... 22 更多原因:java.lang.NullPointerException at ua.eset.inferno.heresy .ws.security.Hello.sayHello(Hello.java:33) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1056) 在 org.glassfish。 com.sun.ejb.containers.BaseContainer 中的 ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1128)。com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) 上 com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) 上的 invokeBeanMethod(BaseContainer.java:5243) .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(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java. lang.reflect.Method.invoke(Method.java:597) 在 com.sun.ejb.containers.interceptors。com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) 上的 AroundInvokeInterceptor.intercept(InterceptorManager.java:858) com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java: 367) 在 com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5215) 在 com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5203) 在 com.sun.ejb.containers.WebServiceInvocationHandler .invoke(WebServiceInvocationHandler.java:188) ... 66 更多__intercept(BaseContainer.java:5215) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5203) at com.sun.ejb.containers.WebServiceInvocationHandler.invoke(WebServiceInvocationHandler.java:188) ... 66更多的__intercept(BaseContainer.java:5215) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5203) at com.sun.ejb.containers.WebServiceInvocationHandler.invoke(WebServiceInvocationHandler.java:188) ... 66更多的
错过了什么?
第二次
但这也无济于事。
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>
Q1:ejb / web services中weld Logger注入的规则是什么?
Q2:会不会是 wsdl/EJB/WebService 问题?