Return-Path: Mailing-List: contact tomcat-user-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list tomcat-user@jakarta.apache.org Received: (qmail 64883 invoked from network); 14 Feb 2001 13:33:23 -0000 Received: from mail2.ssmb.com (HELO issaspam-nj01.ssmb.com) (199.67.141.25) by h31.sny.collab.net with SMTP; 14 Feb 2001 13:33:23 -0000 Received: from isscorp1.nj.ssmb.com (isscorp1.nj.ssmb.com [150.110.236.152]) by issaspam-nj01.ssmb.com (8.11.0/8.11.0/SSMB_EXT/1.1) with ESMTP id f1EDXAT08530 for ; Wed, 14 Feb 2001 08:33:10 -0500 (EST) Received: from mailhub-dc1.eu.ssmb.com (mailhub-dc1.eu.ssmb.com [169.182.172.199]) by isscorp1.nj.ssmb.com (8.11.0/8.11.0/SSMB_QQQ_IN/1.1) with ESMTP id f1EDVfj07255 for ; Wed, 14 Feb 2001 08:31:41 -0500 (EST) Received: from exchukc4.eu.ssmb.com (exchukc4.eu.ssmb.com [169.182.176.172]) by mailhub-dc1.eu.ssmb.com (8.9.3/8.9.3/SSMB-HUB) with ESMTP id NAA16387 for ; Wed, 14 Feb 2001 13:31:40 GMT Received: by exchukc4.eu.ssmb.com with Internet Mail Service (5.5.2650.21) id <18MGTGBB>; Wed, 14 Feb 2001 13:31:40 -0000 Message-ID: From: "Samson, Lyndon [IT]" To: "'tomcat-user@jakarta.apache.org'" Subject: RE: Hi Ho - Problem with ServletOutputStream in Tomcat Date: Wed, 14 Feb 2001 13:31:37 -0000 X-Mailer: Internet Mail Service (5.5.2650.21) X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N This is true, I wrote a multipart/form-data parser and the only character set which preserved binary data was ISO-8859-1. Conversions between bytes and characters only work with this encType, your input and output should both use this if you use characters to store binary data. Output streams are supposed to output bytes, the print in the ServletOutputStream method converts a char to a byte array, you'd be better off using the write(byte[] b) method of the base OutputStream class. -----Original Message----- From: Wolfgang.Kremser@bmi.gv.at [mailto:Wolfgang.Kremser@bmi.gv.at] Sent: Wednesday, February 14, 2001 12:45 PM To: tomcat-user@jakarta.apache.org Subject: Hi Ho - Problem with ServletOutputStream in Tomcat I ve created an Servlet that routes Requests and Responses to and from another Server. When i try to get a Image through this Servlet i get an Error 500. I coded the app as described in the j2ee docu for sending binary data. maybee a little code snipplet and the error trace helps to understand http://127.0.0.1:8080/maria/portal/zmr/javalogo52x88.gif this is the url -- http://127.0.0.1:8080 - is my Tomcat instance /maria/portal - is my proxy servlet /zmr/javalogo52x88.gif is the image i want to display in my browser -> but /zmr is another webapplication on another tomcat server heres the code for the binary data receiving and sending to the client ---------------- // Setting the Headers for the Client same as the Servlet received them from the other server while ((strHeaderKey = HttpUrlCon.getHeaderFieldKey(iCounter)) != null) { strHeaderValue = HttpUrlCon.getHeaderField(iCounter); LogIt("ResponseHeader - Value: " + strHeaderKey + " - " + strHeaderValue); response.setHeader(strHeaderKey,strHeaderValue); iCounter +=1; } // figuring out which type of data the servlet is getting if (HttpUrlCon.getContentType().equals("text/html")) { // Text or HTML -> thats where i use the PrintWriter PrintWriter out = response.getWriter(); int iByte; while ((iByte = brInput.read()) != -1) { out.print((char) iByte); } } else { try { // Everything else assuming its binary data so i use ServletOutputStream ServletOutputStream out = ((ServletResponse)response).getOutputStream(); int iByte; while ((iByte = brInput.read()) != -1) { out.print((char) iByte); } } catch (IOException e) { this.log("IOException !!",e); } } -------------------- heres the error trace i get when i try to process it ----- 2001-02-14 01:26:43 - path="/maria" :proxy: ResponseHeader - Value: Content-Type - image/gif 2001-02-14 01:26:43 - path="/maria" :proxy: ResponseHeader - Value: Content-Length - 1495 2001-02-14 01:26:43 - path="/maria" :proxy: ResponseHeader - Value: Last-Modified - Tue, 13 Feb 2001 10:07:22 GMT 2001-02-14 01:26:43 - path="/maria" :proxy: ResponseHeader - Value: Servlet-Engine - Tomcat Web Server/3.2.1 (JSP 1.1; Servlet 2.2; Java 1.3.0; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.) 2001-02-14 01:26:43 - path="/maria" :proxy: IOException !! - java.io.IOException: Not an ISO 8859_1 character:^ at org.apache.tomcat.core.BufferedServletOutputStream.print(BufferedServletOutp utStream.java:221) at javax.servlet.ServletOutputStream.print(ServletOutputStream.java:177) at at.gv.bmi.maria.proxy.ReturnData(proxy.java:201) at at.gv.bmi.maria.proxy.doGet(proxy.java:63) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404) at org.apache.tomcat.core.Handler.service(Handler.java:286) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79 7) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC onnectionHandler.java:210) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498) at java.lang.Thread.run(Thread.java:484) -------------------- please help me, its important and i dont know how to solve this problem - in my opinion its a problem in the org.apache.tomcat.core.BufferedServletOutputStream Class ?? why does it need a ISO 8859_1 Charset for Binary Data ??? greetings Wolfgang Kremser --------------------------------------------------------------------- To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org For additional commands, email: tomcat-user-help@jakarta.apache.org