Why dont you try using PUT instead of POST ? I think put is more suitable
for this as you can stream anything to servlet.
if you insist on using post, i recommend getting the parameter and replace
the newline with some chars like ':'
this is an example on streaming an object using put
HttpClient client = HTTP_CLIENT;
PutMethod method = new PutMethod(getUrl().toString());
ByteArrayOutputStream byter = new ByteArrayOutputStream();
ObjectOutputStream out = null;
byte[] response = null;
try {
out = new ObjectOutputStream(byter);
out.writeObject(o);
RequestEntity entity = new ByteArrayRequestEntity(
byter.toByteArray());
method.setRequestEntity(entity);
client.executeMethod(method);
response = method.getResponseBody();
} finally {
if (out != null) {
out.close();
}
method.releaseConnection();
}
On 12/20/06, Scott Carr <[EMAIL PROTECTED]> wrote:
I am creating a client - server application that will process lines like:
startjob
adduser
adduser
adduser
adduser
endjob
adduser can be an unlimited amount of times. I want to process the
lines as they come into the Servlet, that way a seperate process could
be doing something to complete each of the tasks, while I am in the
process of working on reading the lines.
I have written a Socket server of my own to do this before, I am now
trying to use Tomcat Servlet to do the same thing, because Tomcat
already some behind the scenes stuff already setup.
Does this make sense? Am I totally off my rocker? (My wife would
definately agree with that last bit.)
Andre Prasetya wrote:
> Why do you want to read POST by using reader ? I only use the stream
from
> request on a PUT request.
>
>
> On 12/16/06, Scott Carr <[EMAIL PROTECTED]> wrote:
>>
>> Hassan Schroeder wrote:
>> > On 12/15/06, Scott Carr <[EMAIL PROTECTED]> wrote:
>> >> Does a servlet require the use of a Content-Length for the Reader
>> to be
>> >> populated?
>> >
>> > A pretty cursory test seems to indicate not, but I could just be
lucky
>> > :-)
>> >
>> >> ...and I want to read each line as they come in, and handle the
>> >> request on
>> >> a line by line basis.
>> >
>> > Have you tried this yet? request.getReader() would seem to cover
>> > your situation, assuming this isn't binary data.
>> >
>> Hm, the reason I asked, is because of a test I ran. strLine is always
>> null.
>>
>> Using the following code for processRequest:
>>
>> response.setContentType("text/plain");
>>
>> m_out = response.getWriter();
>> m_bufRead = request.getReader();
>>
>> while (true) {
>> strLine = m_bufRead.readLine();
>>
>> if (strLine != null) {
>> if (strLine.startsWith("login")) {
>> ProcessLogin();
>> } else if (strLine.startsWith("exit")) {
>> break;
>> }
>> } else {
>> try {
>> Thread.sleep(1000);
>> } catch (InterruptedException ex) {
>> ex.printStackTrace();
>> }
>> }
>> }
>>
>> m_bufRead = null;
>> m_out.close();
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: [email protected]
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
--
Scott Carr
OpenOffice.org
Documentation Co-Lead
http://documentation.openoffice.org
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
-Andre-
PCs are like air conditioner, if you open Windows, they don't work