2016-03-21 13 views
0

Jetty 9.3.3 kullanıyorum. Benim özel hata işleyicisi sınıf, sap yöntemi çağrıldı uygulanan ancak hiçbir throwable nesne var olduğu neden neden göremiyorum:Jetty özelleştirilmiş Hata işleyici sınıfı çağrıldı ancak atılabilir hiçbir nesne yok

public class TestExecuterServerErrorHandler extends ErrorHandler{ 

    private Logger logger=Logger.getLogger(this.getClass().getName()); 

    public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException{ 
     logger.systemWriteOutput("handeling error", 3); 

     ByteArrayISO8859Writer writer= new ByteArrayISO8859Writer(4096); 
     Throwable th = (Throwable)request.getAttribute(RequestDispatcher.ERROR_EXCEPTION); 

     response.setContentType("text/xml"); 

     if(th!=null) 
     { 
      writeResponseError(response.getStatus(), th, writer); 
      th.printStackTrace(); 
     } 

     writer.flush(); 
     response.setContentLength(writer.size());  
     writer.writeTo(response.getOutputStream()); 
     writer.destroy();   
    } 
} 

çıktı:

İşte

benim sınıfının kodudur
handeling error 
handeling error 

Kulp yönteminin çağrısının nedenini nasıl yazdırabilirim?

cevap

0

Jetty ve Jersey'i kullanırken aynı sorunu yaşadım. ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR özniteliğini true'a ayarlayarak çözdüm, Jersey'in bu yanıtı erken geri döndürmesini önleme (istisnayı istek nesnesine eklemeden önce).

İlgili konular