2014-12-06 49 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