The following client code generates a comet BEGIN event on the server but not a subsequent READ event, as I was expecting. How come? Is my code wrong? Are my expectations wrong? See sequence of events commented in code below.
// client test method that sends messages to server and listens for responses public void test() throws IOException { out.println("test 1"); out.flush(); // server receives client's message, generates a BEGIN event, and sends response to client in = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); System.out.println(in.readLine()); // client receives server's response and prints it out.println("test 2"); out.flush(); System.out.println(in.readLine()); // client code blocks here waiting for server response. // server never generates a READ event. How come? // Does the HttpURLConnection (see full code below) need to be set up differently? // Am I using the PrintWriter incorrectly when sending to the comet servlet? out.close(); urlConn.disconnect(); } Thanks for any help, Peter -- system -- using: tomcat 6.0.13 on windows xp sp 2 java 1.6.0_01 -- test client & comet servlet source below -- ## begin test client ## import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; public class CometTestClient { private HttpURLConnection urlConn; private PrintWriter out; private BufferedReader in; public static void main(String[] args) throws Exception { CometTestClient test = new CometTestClient(); test.test(); } public CometTestClient() throws IOException { initConnection(); } private void initConnection() throws IOException { URL url = new URL("http://127.0.0.1/CometTest"); urlConn = (HttpURLConnection) url.openConnection(); urlConn.setDoInput(true); urlConn.setDoOutput(true); urlConn.connect(); out = new PrintWriter(urlConn.getOutputStream()); } public void test() throws IOException { out.println("test 1"); out.flush(); in = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); System.out.println(in.readLine()); out.println("test 2"); out.flush(); System.out.println(in.readLine()); out.close(); urlConn.disconnect(); } } ## end test client ## ## begin comet servlet ## import java.io.BufferedReader; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import org.apache.catalina.CometEvent; import org.apache.catalina.CometProcessor; public class CometTestServlet extends HttpServlet implements CometProcessor { private static final long serialVersionUID = 5472498184127924791L; public void event(CometEvent cometEvent) throws IOException, ServletException { HttpServletRequest request = cometEvent.getHttpServletRequest(); // don't want timeout events cometEvent.setTimeout(1000000); if (cometEvent.getEventType() == CometEvent.EventType.BEGIN) { log("Begin for session: " + request.getSession(true).getId()); BufferedReader reader = cometEvent.getHttpServletRequest().getReader(); String line = reader.readLine(); if (line != null) { log("servlet received: " + line); cometEvent.getHttpServletResponse().getWriter().println("servlet received: " + line); cometEvent.getHttpServletResponse().getWriter().flush(); } else { cometEvent.close(); } } else if (cometEvent.getEventType() == CometEvent.EventType.ERROR) { log("Error for session: " + request.getSession(true).getId() + ", " + cometEvent.getEventSubType()); cometEvent.close(); } else if (cometEvent.getEventType() == CometEvent.EventType.END) { log("End for session: " + request.getSession(true).getId()); cometEvent.close(); } else if (cometEvent.getEventType() == CometEvent.EventType.READ) { log("Read for session: " + request.getSession(true).getId()); BufferedReader reader = cometEvent.getHttpServletRequest().getReader(); String line = reader.readLine(); if (line != null) { cometEvent.getHttpServletResponse().getWriter().println("servlet received: " + line); } else { cometEvent.close(); } } } } ## end comet servlet ## --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]