Frage

Ich habe ein seltsames Problem in einer Grails Webapp angetroffen läuft unter Grails:

java.io.UnsupportedEncodingException wird recht häufig aufgrund verschiedener unbekannte Codierung Strings (wie "ISO8859_10", "ISO-8859-10") geworfen, und das Merkwürdige ist, dass diese vollständig im Harz und Grails-Code erfolgt. Das ist -. Kein benutzerdefinierter Code beteiligt ist, wenn die Ausnahme ausgelöst wird

Ich bin mir nicht sicher, ob es ist Grails oder den Code des Servlet-Container, der die Ausnahme behandeln soll. Aber ich würde davon ausgehen, dass die Ausnahme irgendwo behandelt werden soll und nicht sprudelt die ganzen Weg nach stderr.

Dies ist die Ausnahme in voller Länge:

java.io.UnsupportedEncodingException: ISO-8859-10
  at com.caucho.vfs.i18n.JDKWriter$OutputStreamEncodingWriter.<init>(JDKWriter.java:112)
  at com.caucho.vfs.i18n.JDKWriter.create(JDKWriter.java:79)
  at com.caucho.vfs.Encoding.getWriteEncoding(Encoding.java:231)
  at com.caucho.server.connection.ToByteResponseStream.setEncoding(ToByteResponseStream.java:137)
  at com.caucho.server.connection.AbstractHttpResponse.setLocale(AbstractHttpResponse.java:1683)
  at com.caucho.server.connection.HttpServletResponseImpl.setLocale(HttpServletResponseImpl.java: 115)
  at javax.servlet.ServletResponseWrapper.setLocale(ServletResponseWrapper.java:139)
  at javax.servlet.ServletResponseWrapper.setLocale(ServletResponseWrapper.java:139)
  at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1035)
  at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:290)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:114)

Meine Fragen:

  • Sollte die Ausnahme behandelt werden? Wenn ja, ist es in der Verantwortung der Servlet-Container (Harz) oder dem Web-Framework (Grails)?
  • Wie würden Sie gehen über diese Lösung? (Ich möchte lieber nicht das Ausnahmeprotokoll mit Ausnahmen vollgestopft mit, dass ich nichts tun.)
War es hilfreich?

Lösung

Ich weiß nicht viel über Grails, aber vielleicht könnten Sie versuchen, um herauszufinden, wo diese seltsame Codierung herkommt.

Sie Ihre Anfragen Accept-Charset senden Header? Tun Sie Dinge besser funktionieren, wenn Sie die „file.encoding“ Systemeigenschaft etwas Sinnvolles wie UTF-8 in Ihrem resin.conf eingestellt?

Andere Tipps

Sie können auch eine localeResolver Bohne in Ihrem Anwendungskontext eingerichtet. Die DispatcherServlet wird, dass verwenden das Gebietsschema zu lösen. Ich habe es nicht versucht, mich, aber mein Vorschlag ist, die org.springframework.web.servlet.i18n.FixedLocaleResolver zu verwenden. Es wird Locale.getDefault() delegieren, wenn Sie auf keinen Satz haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top