2012-03-29 5 views
0

응용 프로그램의 일부로 하위 페이지의 모든 매개 변수가 할당 된 다른 JSP 페이지 (하위 페이지)를 호출하는 JSP 페이지 (상위 페이지)가 있습니다. 상위 페이지의 양식으로 이동 한 다음 페이지 제출을 시도합니다. 제출시 NestedRuntimeException : 요청의 POST 매개 변수를 구문 분석 할 수 없습니다.

, 우리는
(I) Front end error 
===================== 
Error 500--Internal Server Error 
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1: 

그리고 우리는 다음과 같은 오류를 얻을 백엔드에

... 프론트 엔드에 다음과 같은 오류를 얻고있다

(II) Application server Error log 

    <Error> <HTTP> <BEA-101019> <[ServletContext(id=29607640,name=test,c 
    ontext-path=/Test)] Servlet failed with IOException 
    java.net.SocketTimeoutException: Read timed out 
      at java.net.SocketInputStream.socketRead0(Native Method) 
      at java.net.SocketInputStream.read(SocketInputStream.java:129) 
      at weblogic.servlet.internal.PostInputStream.read(PostInputStream.java:170) 
      at weblogic.servlet.internal.ServletInputStreamImpl$1.read(ServletInputStreamImpl.java:115) 
      at weblogic.servlet.internal.ServletInputStreamImpl.read(ServletInputStreamImpl.java:180) 
      at weblogic.servlet.internal.ServletRequestImpl.mergePostParams(ServletRequestImpl.java:1339 
    ) 
      at weblogic.servlet.internal.ServletRequestImpl.parseQueryParams(ServletRequestImpl.java:120 
    6) 
      at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:1409) 
      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:446) 
      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348) 
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC 
    ontext.java:7047) 
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 
      at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:39 
    02) 
      at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773) 
      at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) 
      at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) 
    **--------------- nested within: ------------------ 
    weblogic.utils.NestedRuntimeException: Cannot parse POST parameters of request: '/Test/test1.jsp 
    ' - with nested exception: 
    [java.net.SocketTimeoutException: Read timed out]** 

      at weblogic.servlet.internal.ServletRequestImpl.mergePostParams(ServletRequestImpl.java:1364 
    ) 
      at weblogic.servlet.internal.ServletRequestImpl.parseQueryParams(ServletRequestImpl.java:120 
    6) 
      at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:1409) 
      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:446) 
      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348) 
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC 
    ontext.java:7047) 
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 
      at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:39 
    02) 
      at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773) 
      at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) 
      at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) 

문제의 원인에 대해 제안 해주십시오.

+0

질문에 대한 답변이 있거나 더 이상 유효하지 않은 경우 모든 사람들이 문제가 해결되었음을 알 수 있도록 가장 적합한 답변을 선택하십시오. 감사. – wattostudios

답변

0

SocketTimeoutException이 발생하므로 POST에 문제가있을 수 있습니다. 예를 들어 충분한 데이터 바이트를 보내지 않거나 연결이 끝나면 연결을 닫지 않을 수도 있습니다. 기본적으로 시간이 초과 될 때까지 더 많은 정보를 기다리고 있습니다.

특히 더 나은 피드백을 제공 할 수 있도록 POST 코드를 게시하고 실행하는 곳에서 JSP 코드를 게시 해주십시오.

+0

빠른 답장을 보내 주셔서 감사합니다. 그것의 유산 코드는 내가 excatly 내가 많은 조각과 조각이 여기 저기에 있어야 할 필요가있는 것을 정말로 이해하지 못했다. 나는 혼란 스럽다. 그러나 나는 그 자료가 바이트 데이터에 의한 것이라고 이해했다. StringBuffer sb = new StringBuffer (50)를 선언하고 지정된 크기를 초과하는 경우 stringbuffer에 append하는 동안 post 매개 변수로 게시하는 동안 이와 같은 문제가 발생한다고 가정 해 주시겠습니까? – sairam

+0

아니요. 아마도이 문제가 발생하지 않을 것입니다. 그러나 왜 StringBuffer를 사용하고 있습니까? POST를 통해 String을 보내려고한다면 StringWriter와 같은 것을 사용해야 할 것이다. StringWriter는 스트림에 값을 출력한다. POST를 통해 StringBuffer를 보내는 경우에는 대신 일반 String을 보내는 것이 좋습니다. POST를 통해 StringBuffer를 보내는 것은 예상 한대로 수행하지 않을 것입니다. 추가 도움을 원한다면 몇 가지 코드를 게시 해 주시면보다 나은 답변을 제공해 드리겠습니다. – wattostudios

+0

사실 그들은 StringBuffer에 추가하고 나중에 toString()을 적용합니다. 때로는 때때로 작동하지 않는데, 코드가 비트와 조각으로되어있어 실제로 혼란스러워하는 코드의 부분을 이해하지 못했습니다. 버그 수정을하고 있습니다. 실제로 어떻게 작동하는지 A.가 있습니다. jsp에서 B.jsp를 포함하고있는 경우 form 태그는 B.jsp이며 일부 체크 박스 선택을 수행하고 양식을 제출하여 A.jsp로 라우팅되고 B.jsp로 라우팅됩니다. 동일한 코드가 다른 웹 로직 서버 (테스트 환경)에서 작동하지만 동일한 환경이 하나의 환경에서 작동하지 않습니다 (예 : 테스트 환경).

sairam

관련 문제