2014-12-06 69 views
1

我們有一個部署到JBoss 5.0.1 GA的java web應用程序。有時候,我們看到從我們的服務器日誌中這樣的例外奇怪的illegalArgumentException根源於JBoss 5.0.1 GA

java.lang.IllegalArgumentException 
at java.nio.Buffer.position(Buffer.java:216) 
at org.apache.tomcat.util.buf.B2CConverter.convert(B2CConverter.java:84) 
at org.apache.catalina.connector.InputBuffer.realReadChars(InputBuffer.java:403) 
at org.apache.tomcat.util.buf.CharChunk.substract(CharChunk.java:416) 
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:432) 
at org.apache.catalina.connector.CoyoteReader.read(CoyoteReader.java:105) 
at org.apache.catalina.connector.CoyoteReader.readLine(CoyoteReader.java:158) 

....

從我們的部分引發異常的代碼是

public static String getStringFromRequest(HttpServletRequest request) { 
    String data = ""; 
    try { 
     BufferedReader reader = request.getReader(); 
     StringBuilder sb = new StringBuilder(); 

     // the line below is the the line that blows the exception 
     String line = reader.readLine(); 

     while (line != null) { 
      sb.append(line + "\n"); 
      line = reader.readLine(); 
     } 
     reader.close(); 
     data = sb.toString(); 
    } 
    catch (IOException e) { 
     ... 
    } 
    return data; 
} 

我們從來沒有見過這樣的異常在我們的測試環境。只有在生產中,交通絕對會更重。有沒有人見過這個?如果我們知道什麼可能觸發異常,那麼我們知道如何重現和修復異常會非常有幫助。任何提示/幫助深表感謝

回答

0

一個可行的解決方案是升級你的jbossweb.jar

按照JIRA問題,修復一直致力於2.x branchjava.lang.IllegalArgumentException on JBoss 5.0.1

可能的解決方法(java.lang.IllegalArgumentException on JBOSS):

以下步驟幫助解決我們的服務器上與 jboss-5.1.0.GA類似問題。 (考慮到你有一個開發 環境Eclipse和螞蟻):

  1. 結賬快照,其中包括從匿名SVN的jbossweb項目的上述修正:

  2. 應用附加的補丁,這樣就可以生成jbossweb.jar(我剛剛評論了額外的不必要的資源下載和編譯)。

    • 注:我使用了Eclipse赫利俄斯構建罐子,所以只需更新build.properties.default的jdt.homejdt.jar properties,以配合您的Eclipse JDT和罐子地點的位置。
  3. 運行ant部署目標。

  4. 如果您的構建成功,將會在output/jars/jbossweb.jar下生成一個新的帶修復程序的jbossweb.jar。

  5. 複製新jbossweb.jar了舊<profile>/deploy/jbossweb.sar/jbossweb.jar

  6. 重啓JBoss。

我希望能夠對此有所幫助。

+0

非常感謝Federico。真的很感激它。你碰巧知道如何重現錯誤,即在什麼情況下JBoss會吐出這個錯誤?我想知道,所以我可以確定事情是固定的,否則我將不得不長時間穿過手指以確保它不再出現 – gigi2 2014-12-08 19:35:01