0

Birt 2.3.2 を使用しています。Firefox 15.0.1 でレポートを開こうとすると、スタック トレースなしで例外「org.xml.sax.SAXParseException: Premature end of file」が発生します。

デバッグを試みたところ、Firefox が間違ったコンテンツ タイプを送信していることがわかりました。Tamper Dataプラグインを使用してリクエストのヘッダーを変更すると、機能しました。

送られてきたリクエストは

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]

Content-Type を text/xml に変更すると、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)
4

2 に答える 2

0

サーブレットからエンジンを使用している場合は、応答でコンテンツタイプを設定していることを確認してください。

response.setContentType( "text / html");

于 2012-10-09T22:30:10.383 に答える