سؤال

أحاول استبدال تهيئة المسجل القياسية ببعض الحقن

1-ST.

كنت أحاول استخدام اللحام تسجيل اللحام في الخدمات الفول/Websleships

@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 at org.glassfish.webservices.monitoring.webservicetesterservlet.dopoStering.InviSeStervEnserVeServeServEsterVesterveServiSeStervIstervIseStervIseStervIngeTeSterVeSeSterVeServEnsEsterVisterVeServEnterG. ) في org.glassfish.webservices.ejbwebwebserviceservlet.service (ejbwebwebserviceservlet.java:110) في javax.servlet.http.httpservlet.service (httpservlet.java:847) filterchainimpl.java:195) في com.sun.grizzly.http.servlet.filterchainimpl.invokefilterchain .sun.grizzly.http.servlet.servletadapter.service (servletadapter.java:329) في com.sun.grizzly.tcp.http11 .hk2dispatcher.dispath (hk2dispatcher.java:100) في com.sun.enterprise.v3.services.impl.containermapper.service (conta inermapper.java:245) في com.sun.grizzly.http.processortask.invokeadapter (processortask.java:791) في com.sun.grizzly.http.processortask.doprocess .http.processortask.process (processortask.java:954) في com.sun.grizzly.http.defaultprotocolfilter.execute (defaultprotocolter.java:170) في com.sun.grizzly.defaultprotocolchain. com.sun.grizzly.defaultprotocolchain.execute (defaultprotocolchain.java:102) في com.sun.grizzly.defaultprotocolchain.execute (defaultprotocolchain.java:88) 76) في com.sun.grizzly.protocolchaincontexttask.docall (protocolchaincontexttask.java:53) في com.sun.grizzly.selectionkekontexttask.call (SelecteKeyContextTask.java:57) في com.sun.grizzle.run.run (sealexttask.run. : 69) في com.sun.grizzly.util.abstractthroadpool $ worker.dowork (Abstractthreadpool.java:330) في com.sun.grizzly.util.abstractthreadpo ol $ worker.run (AbstractThreadPool.java:309) at java.lang.thread.run (thread.java:619) nupe java.lang.reflect.invocationTargetException at sun.reflect.nativeMetCorcorimpl.invoke0 (native meth Sun.Reflect.NativeMethodAccessorImpl.Invoke (NativeMethodAccessorImpl.Java:39) في Sun.Reflect.DelegatingMethodAccessorImpl.invoke (devingMethodAccessorImpl.java:25) في java.lang.reflect.method.invoke .webservices.monitoring.webserviceterservlet.dopost (WebServicetEsterServlet.java:297) ... 24 أخرى بسبب: javax.xml.ws.soap.soapfaultException: .getProtocolexception (soap11fault.java:189) في com.sun.xml.ws.fault.soapfaultbuilder.createException (soapfaultbuilder.java:130) في com.sun.xml.ws.client.sei.seincmethodlyler.invoke : 119) في com.sun.xml.ws.client.sei.syncmethodhandler.invoke (syncmethodhandler.java:89) في com.sun.xml.ws.client.sei.seistub.invoke (seissub.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.webbockethandlerder. proxy464.sayhello (مصدر غير معروف) في sun.reflect.nativeMethodAccessorImpl.Invoke0 (الطريقة الأصلية) في sun.reflect.nativemethodaccessorImpl.invoke (nativemethodaccessorimpl.java:39) في sun.reflectoriMpleCtorImpl.invokessorImpl.InvokessorImpl.InvokessorImpl.InvokessorImpl.invokessoriMpl.InvokessoriMpl.invokessoriMpl.invainvainS. java.lang.reflect.method.invoke (method.java:597) at org.glassfish.webservices.invokerimpl.invoke (invokerimpl.java:78) at org.glassfish.webservics.ejbinvokerimpl.ininin في com.sun.xml.ws.server.invokertube $ 2.invoke (invokertube.java:146) في com.sun.xml.ws.server.sei.endpoin tmethodhandler.invoke (endpointmethodhandler.java:257) في com.sun.xml.ws.server.sei.seiinvokertube.processRequest (seiinvokertube.java:95) في com.sun.xml.ws.api.pipiber.__ dorun ( الألياف. 573) في com.sun.xml.ws.api.pipe.fiber.runsync (fiber.java:470) في com.sun.xml.ws.api.pipe.helper.abstracttubeimpl.process (AbstractTubeimpl.java:112) at org.glassfish.webservices.monitoringpipe.process (monitoringPipipipipipipi.java:138) في com.sun.xml.ws.api.pipe.helper.pipeadapter.processRequest (pipeadapter.java:115) في com.sun.xml.wss .api.pipe.fiber .__ dorun (fiber.java:69) at com.sun.xml.ws.api.pipe.fiber._dorun (fiber.java:588) at com.sun.xml.ws.api.pipe .fiber.dorun (fiber.java:573) at com.sun.xml.ws.api.pipe.fiber.runsync . un.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.security.wobservices. commonserversecuritypipipipipipe.processRequest (commonserversecuritypipipipipipip.java:195) في com.sun.enterprise.security.webservices.commonserversecurity.process pipeadapter.java:115) في com.sun.xml.ws.api.pipe.fiber .__ Dorun (fiber.java:629) at 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:28) at com. sun.xml.ws.transport.http.servlet.servletadapter.handle (servletadapter.java:143) في org.glassfish.webservices.ejb3messagedispatcher.handlepost (ejb3messagedispatcher.java:116) ejb3messagedispatcher.java:87) في org.glassfish.webservices.ejbWebWebServiceservlet.dispatchtoejbendpoint (ejbwebwebwebservistervlet.java:196) في org.glassfish.webserviceserviceserververvevervisterv. lang.nullpointerexception في ua.eset.inferno.heresy.ws.security.hello.sayhello (hello.java:33) في sun.reflect.nativemetactoriMpl.Invoke0 (nativempl.ivaCorcormpl.Invokepl.invoke0 (nativaMpl.InvoCksorimpl.InvokeSpl.InvokeSpl.invokeSpl.Invoketrimpl.Invoketrimpl.IntoDoCkoriMpl.invokeSpokeSpokeSpoke. : 39) في Sun.Reflect.DelegatingMethodAccessorImpl.invoke (DevatingMethodAccessorImpl.java:25) في java.lang.reflect.met hod.invoke (method.java:597) at org.glassfish.ejb.security.application.ejbsecuritymanager.runmethod ( 1128) في com.sun.ejb.containers.baseContainer.invokebeanmethod (baseContainer.java:5243) في com.sun.ejb.ejbinvocation.invokebeanmethod (ejbinvocation.java:615) ata. .invokenStex (InterceptorManager.java:797) في com.sun.ejb.ejbinvocation.proceed (ejbinvocation.java:567) في com.sun.ejb.containers.Interceptors.SystemInterproxy.doaround (SystemInterceptosproxy.java.java.157. sun.ejb.containers.Interceptors.SestemInterceptorproxy.aroundInvoke (SystemInterceptorProxy.java:139) في sun.reflect.nativemethodaccoriMpl.Invoke0 (method native) at sun.reflect.nativemeTascessorImpl.invoke. DevingMethodAccessorImpl.Invoke (DevatingMethodAccessorImpl.Java:25) في java.lang.r eflect.method.invoke (method.java:597) في com.sun.ejb.containers.Interceptors.AroundInvokeInterceptor.Interceptive (interceptormanager.java:858) في com.sun.ejb.containers.Anterceptors.AroundInvokechainimpl.Invokenext java: 797) في com.sun.ejb.containers.Interceptors.InterceptorManager.Interceptive (interceptormanager.java:367) في com.sun.ejb.containers.baseContainer .__ intercep .containers.baseContainer.Intercept (basecontainer.java:5203) في com.sun.ejb.containers.webserviceinvocationhandler.invoke (WebServiceInvocationHandler.Java:188) ... 66 أخرى

ما الذي يفتقد؟

2-ND

مما أحاول هذا الدورة التعليمية يشار إلى هذا - حقن مخصصة

لكنها أيضا تساعد.

تبعيات مافن -

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

س 1: ما هي قاعدة حقن مسجل اللحام في خدمات EJB / Web؟

س 2: هل يمكن أن تكون مشكلة WSDL/EJB/WebService؟

هل كانت مفيدة؟

المحلول

تأكد من أن الفول في أرشيف الفول - أي أن لديك META-INF/beans.xml

بصرف النظر عن امتداد اللحام ، الذي لا يمكنني مساعدتك به إلا إذا أعطيت الاستثناء الكامل ، يمكنك إنشاء منتج @Produces أ Logger

نصائح أخرى

هذا هو نهجي:

أضف التبعيات التالية إلى 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 ، فقد وجدت هذه الصفحة. لقد جربتها ، لكنني لم أستطع تشغيلها ، لذا ما زلت متمسكًا بحلي الخاص.

يتم تعريف منتج مسجل SLF4J الافتراضي في امتدادات اللحام. يمكنك أن ترى كيف يتم كتابة المنتج هنا إذا كنت ترغب في توصيل بنفسك دون تضمين جميع ملحقات اللحام.

في هذه الحالة ، لم أضع bean.xml في meta-inf.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top