java - Tomcat timesout when it's working -
java - Tomcat timesout when it's working -
first of - i'm little experienced servlets , other java ee stuff.
i trying create simple chat room, before tried making simple udp server , client. works, except 1 thing after 45 seconds tomcat timesout , turns off. have single contextlistener calls udp server class.
is because have no servlets, or ?..
here's udp server class:
public udpserver() { system.out.println("constructor reached"); seek { connect(); } grab (exception e) { e.printstacktrace(); } } public void connect() throws exception { int serverport = 9123; system.out.println("server starting"); datagramsocket serversocket = new datagramsocket(serverport); system.out.println("server started"); byte[] receivedata = new byte[1024]; byte[] senddata = new byte[1024]; while(true) { datagrampacket receivepacket = new datagrampacket(receivedata, receivedata.length); serversocket.receive(receivepacket); string sentence = new string( receivepacket.getdata()); system.out.println("received: " + sentence); inetaddress ipaddress = receivepacket.getaddress(); int port = receivepacket.getport(); string capitalizedsentence = sentence.touppercase(); senddata = capitalizedsentence.getbytes(); datagrampacket sendpacket = new datagrampacket(senddata, senddata.length, ipaddress, port); serversocket.send(sendpacket); receivedata = new byte[1024]; senddata = new byte[1024]; } }
here's simple contextlistener
public class startupservlet implements servletcontextlistener { // private static logger logger = logger.getanonymouslogger(applicationlistener.class); @override public void contextdestroyed(servletcontextevent servletcontextevent) { // logger.info("class : context destroyed"); } @override public void contextinitialized(servletcontextevent servletcontextevent) { servletcontext context = servletcontextevent.getservletcontext(); ///// here launch class udpserver udpserver = new udpserver(); // logger.info("myapp : context initialized"); }
}
and here's web.xml
<web-app> <listener> <listener-class>com.chatroom.servlet.startupservlet</listener-class> </listener> </web-app>
udp server runs in same thread servlet initializer thread, , has infinite loop. so, application can't start. run udpserver in seperate thread.
java tomcat servlets
Comments
Post a Comment