2014-05-13 3 views
14

मैं अन्य चीज़ों के साथ एक जेबॉस सर्वर चला रहा हूं, एक जेएक्स-आरएस वेब सेवा (resteasy-2.3.6 का उपयोग करके। जेबॉस/ईएपी के साथ अंतिम बंडल)।निरस्त अजाक्स कॉल क्लाइंटएबॉर्ट अपवाद/टूटा हुआ पाइप सर्वर लॉग में देता है: कैच/दबाने के लिए कैसे?

एक क्लाइंट सर्वर के लिए एक कॉल रोकता है, Resteasy SynchronousDispatcher (जाहिर है) नहीं प्रतिक्रिया वापस ग्राहक जो [SEVERE] और [ERROR] स्तर पर त्रुटियों की एक गुच्छा का कारण बनता है मेरी सर्वर लॉग में दिखाने के लिए भेज सकते हैं।

हालांकि, मैं इन्हें वास्तविक त्रुटियों के रूप में नहीं मानता, इसलिए मैं उन्हें देखना नहीं चाहता हूं। विशेष रूप से यह तब होता है जब सेवा सार्वजनिक उपयोग में हो जाएगी।

12:50:38,938 SEVERE [org.jboss.resteasy.core.SynchronousDispatcher] (http-localhost/127.0.0.1:8080-2) Failed executing GET /ajax/findPerson: org.jboss.resteasy.spi.WriterException: ClientAbortException: java.net.SocketException: Broken pipe 
    at org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:262) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] 
    .... 

Caused by: ClientAbortException: java.net.SocketException: Broken pipe 
    at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:403) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:356) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:426) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:415) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    ... 

Caused by: java.net.SocketException: Broken pipe 
    at java.net.SocketOutputStream.socketWrite0(Native Method) [rt.jar:1.7.0_51] 
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) [rt.jar:1.7.0_51] 
    at java.net.SocketOutputStream.write(SocketOutputStream.java:159) [rt.jar:1.7.0_51] 
    at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:711) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:450) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:351) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    ... 

12:50:38,942 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/myapplication].[MyAjaxApplication]] (http-localhost/127.0.0.1:8080-2) JBWEB000236: Servlet.service() for servlet MyAjaxApplication threw exception: java.lang.IllegalStateException 
    at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:392) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] 
    at javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:152) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] 
    ... 

वहाँ ऐसा करने के लिए एक सुंदर तरीका है:

यहाँ मैं दबाने के लिए चाहते लॉग उत्पादन है?

writing my ownExceptionMapper करके मैं पहले एक ([SEVERE]) रोकने के लिए और यह एक डिबग स्तर के एक पंक्ति का लॉग उत्पादन में बदल जाते हैं करने में कामयाब रहे, लेकिन दूसरा एक अभी भी वहाँ है। वाकई, मुझे नहीं पता कि कहां देखना शुरू करना है।

मैं एक में देखा है तो सवाल यह है कि I could just set the log level for one or both classes that throw the errors to a higher level, कहते हैं कि [FATAL], लेकिन मैं एक इस तरीके का उपयोग अधिक करने पर विचार करेंगे ...

विचार?

उत्तर

0

JBoss standalone.xml विन्यास फाइल में, प्रवेश सबसिस्टम ( <subsystem xmlns="urn:jboss:domain:logging:1.5"> के लिए खोज करता है, तो आप ईएपी 6.4.0 का उपयोग कर रहे द्वारा जैसे) के पास जाओ, और फिर श्रेणी जिसके लिए आप को दबाने के लिए चाहते हैं के लिए एक लकड़हारा जोड़ने त्रुटियों। आपके उदाहरण के लिए यदि आप org.jboss.resteasy के लिए लॉग को दबाने के लिए चाहते हैं तो अपने लकड़हारा की तरह

<logger category="org.jboss.resteasy"> 
    <level name="OFF"/> 
</logger> 

बंद करने के लिए स्तर की स्थापना पैकेज org.jboss.resteasy में त्रुटियों लॉग इन करने से लकड़हारा को दबाने चाहिए लगेगा

+0

लेकिन फिर मुझे कोई भी आराम से लॉगिंग नहीं मिलेगी। यहां तक ​​कि अपमानजनक वर्ग ("सिंक्रोनस डिस्पैचर") के स्तर पर, मैं चाहता हूं कि यह एक अपवाद दबाए, न कि उस वर्ग से सभी लॉग आउटपुट। – Antares42

संबंधित मुद्दे