jean-frederic clere wrote:
Clere, Jean-Frederic wrote:
Remy Maucherat wrote:
jean-frederic clere wrote:
Hi,
I have a funny problem with Coyote: The response body are Ok (in ASCII) but the headers are corrupted (probably in EBCDIC). May be somewhere I have to tell Coyote to do ASCII instead default encoding.
Has someone a hint?
The header writing is in http11.InternalOutputBuffer. Is something special needed ?
Probably some getBytes("ISO-8859-1") instead of getBytes()
Oops...
Mostly in http11/src/java/org/apache/coyote/http11/Constants.java getBytes(char encoding) throws execptions so I have to use:
{ (byte) 'a', (byte) 'b' ... };
instead of:
"ab".getBytes();
Ah, ok, I wasn't seeing any getBytes in InternalOutputBuffer, so this was a bit confusing.
Sorry.
Maybe we can add a static method which does the byte by byte copy to preserve some kind of readability, while still fixing the issue.
Well that is true that: +++ public static final byte[] ACK = "HTTP/1.1 100 Continue\r\n\r\n".getBytes(); +++ Is more readable than: +++ public static final byte[] ACK = { (byte) '1', (byte) '.', (byte) '1', (byte) ' ', (byte) '1', (byte) '0', (byte) '0', (byte) ' ', (byte) 'C', (byte) 'o', (byte) 'n', (byte) 't', (byte) 'i', (byte) 'n', (byte) 'u', (byte) 'e', (byte) '\r', (byte) '\n', (byte) '\r', (byte) '\n' }; +++ But that is still readable ;-)
And now my EBCDIC machine seems to return understandable headers :-) (Well it seems now that the body of other things that errors are also somehow in EBCDIC but I will look how to arrange it).
I will commit the changes in http11/src/java/org/apache/coyote/http11/Constants.java tomorrow if noone complains in the meantime.
Cheers
Jean-Frederic
Remy
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Index: http11/src/java/org/apache/coyote/http11/Constants.java =================================================================== RCS file: /home/cvs/mirror/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Constants.java,v retrieving revision 1.12 diff -u -r1.12 Constants.java --- http11/src/java/org/apache/coyote/http11/Constants.java 24 Nov 2002 22:00:04 -0000 1.12 +++ http11/src/java/org/apache/coyote/http11/Constants.java 2 Oct 2003 16:29:38 -0000 @@ -159,25 +159,42 @@ /** * CRLF bytes. */ - public static final byte[] CRLF_BYTES = "\r\n".getBytes(); + public static final byte[] CRLF_BYTES = {(byte) '\r', (byte) '\n'}; /** * Colon bytes. */ - public static final byte[] COLON_BYTES = ": ".getBytes(); + public static final byte[] COLON_BYTES = {(byte) ':', (byte) ' '}; /** * Close bytes. */ - public static final byte[] CLOSE_BYTES = "close".getBytes(); + public static final byte[] CLOSE_BYTES = { + (byte) 'c', + (byte) 'l', + (byte) 'o', + (byte) 's', + (byte) 'e' + }; /** * Keep-alive bytes. */ - public static final byte[] KEEPALIVE_BYTES = "keep-alive".getBytes(); + public static final byte[] KEEPALIVE_BYTES = { + (byte) 'k', + (byte) 'e', + (byte) 'e', + (byte) 'p', + (byte) '-', + (byte) 'a', + (byte) 'l', + (byte) 'i', + (byte) 'v', + (byte) 'e' + }; /** @@ -231,8 +248,26 @@ /** * Ack string when pipelining HTTP requests. */ - public static final byte[] ACK = - "HTTP/1.1 100 Continue\r\n\r\n".getBytes(); - - + public static final byte[] ACK = { + (byte) '1', + (byte) '.', + (byte) '1', + (byte) ' ', + (byte) '1', + (byte) '0', + (byte) '0', + (byte) ' ', + (byte) 'C', + (byte) 'o', + (byte) 'n', + (byte) 't', + (byte) 'i', + (byte) 'n', + (byte) 'u', + (byte) 'e', + (byte) '\r', + (byte) '\n', + (byte) '\r', + (byte) '\n' + }; }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]