奇怪的illegalArgumentException源于JBoss 5.0.1 GA

时间:2014-12-06 02:58:56

标签: java-ee web jboss

我们有一个部署到JBoss 5.0.1 GA的java Web应用程序。有时,我们会从服务器日志

中观察到此类异常
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;
}

我们的测试环境中从未见过这个例外。只有在生产中,交通肯定更重。谁看过这个吗?如果我们知道什么可以触发异常,那么我们就知道如何重现和修复异常将非常有用。非常感谢任何提示/帮助

1 个答案:

答案 0 :(得分:0)

该问题的可行解决方案是升级您的jbossweb.jar

根据jira问题,该修补程序已提交至2.x branchjava.lang.IllegalArgumentException on JBoss 5.0.1

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

  

以下步骤有助于解决我们在服务器上遇到的类似问题   jboss-5.1.0.GA。 (考虑到你有一个发展   环境与日食和蚂蚁):

     
      
  1. 签出一张快照,其中包含来自anon svn的jbossweb项目的上述修复:

         
  2.   
  3. 应用附加的补丁,以便生成jbossweb.jar(我只是评论了额外的不必要的资源下载和编译)。

         
        
    • 注意:我使用eclipse helios来构建jar,所以只需更新jdt.home和   build.properties.default中的jdt.jar properties以匹配您的eclipse和jdt jar位置的位置。
    •   
  4.   
  5. 运行ant deploy target。

  6.   
  7. 如果您的构建成功,将在output/jars/jbossweb.jar下生成一个包含修复程序的新jbossweb.jar。

  8.   
  9. 将新jbossweb.jar复制到旧<profile>/deploy/jbossweb.sar/jbossweb.jar

  10. 上   
  11. 重启jboss。

  12.   

我希望这有帮助。