2012-10-05 3 views
0

Birt 2.3.2를 사용 중입니다. Firefox 15.0.1에서 보고서를 열려고 시도했지만 스택 추적없이 "org.xml.sax.SAXParseException : Premature end of file"예외가 발생했습니다.org.xml.sax.SAXParseException : birt 2.3.2 및 firefox 15가있는 조기 말미 파일

Firefox를 디버그하려고 시도했지만 Firefox가 잘못된 content-type을 보내고 있음을 발견했습니다. Tamper Data 플러그인을 사용하여 요청 헤더를 수정하면 효과가있었습니다.

우리가/XML을 텍스트로 콘텐츠 형식을 수정하면 전송 된 요청이

POST <<URL>> 
Request Headers: 
Host[<<MYHOST>>] 
User-Agent[Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1] 
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] 
Accept-Language[en-us,en;q=0.5] 
Accept-Encoding[gzip, deflate] 
Connection[keep-alive] 
Content-Length[1702] 
Content-Type[application/x-www-form-urlencoded] 
Referer[<<URL>>] 
request-type[SOAP] 
SOAPAction[""] 
X-Prototype-Version[1.4.0] 
X-Requested-With[XMLHttpRequest] 
Cookie[JSESSIONID=A5E874082FE87F814F32B103EE864EBF.] 
Pragma[no-cache] 
Cache-Control[no-cache] 
Post Data: 
POST_DATA[<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><<SOAPBODY>></soap:Body></soap:Envelope>] 
Response Headers: 
Server[Apache-Coyote/1.1] 
X-Powered-By[Servlet 2.5; JBoss-5.0/JBossWeb-2.1] 
Content-Type[text/xml;charset=utf-8] 
Transfer-Encoding[chunked] 
Date[Fri, 28 Sep 2012 00:05:39 GMT] 
Connection[close] 

이다; charset = UTF-8, 작동했습니다

또한 크롬 및 IE와 함께 작동하며 때로는 FF로 작동하지만 다시 FF로 다시 시작하면 문제가 나타납니다.

해결 방법이 있습니까?

On server we are getting following exception 

jvm 1 | java.io.CharConversionException: isHexDigit 
jvm 1 |  at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:88) 
jvm 1 |  at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:49) 
jvm 1 |  at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:429) 
jvm 1 |  at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:412) 
jvm 1 |  at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:363) 
jvm 1 |  at org.apache.catalina.connector.Request.parseParameters(Request.java:2562) 
jvm 1 |  at org.apache.catalina.connector.Request.getParameterNames(Request.java:1102) 
jvm 1 |  at org.apache.catalina.connector.Request.getParameterMap(Request.java:1082) 
jvm 1 |  at org.apache.catalina.connector.RequestFacade.getParameterMap(RequestFacade.java:414) 
jvm 1 |  at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:196) 
jvm 1 |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
jvm 1 |  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) 
jvm 1 |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
jvm 1 |  at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122) 
jvm 1 |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
jvm 1 |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 

답변

0

당신이 서블릿에서 엔진을 사용하는 경우, 당신은 응답의 내용 유형 설정을 확인하십시오

response.setContentType ("text/html과를");

0

나는 이것이 listed on Eclipse bug list이라는 알려진 버그라고 생각합니다. 주석 # 6에서

봐는 :

해결 방법은

라인을 주석 전에 다음/아약스/lib 디렉토리 /가 prototype.js에, 크롬 것 라인 (668) 및 웹 콘텐츠/BIRT의 669을 주석하는 것입니다 Content-type을 "application/x-www-form-urlencoded, text/xml; charset = UTF-8"로 보내면 예외가 발생합니다.

라인을 주석 한 후, 크롬으로 콘텐츠 유형을 보낼 것 "텍스트/XML, 캐릭터 세트는 = UTF-8", 다른 잘 동작하는 브라우저 :

prototype.js에 BIRT 보고서와 함께 제공 등이 보인다 다소 오래되었지만 4 년 전 버전 1.5.0_rc0에서 코드의 일부가 수정되었습니다.