What version of Tomcat are you using? Can you post your web.xml? -- Tim Moore / Blackboard Inc. / Software Engineer 1899 L Street, NW / 5th Floor / Washington, DC 20036 Phone 202-463-4860 ext. 258 / Fax 202-463-4863
> -----Original Message----- > From: jackie [mailto:[EMAIL PROTECTED]] > Sent: Thursday, February 06, 2003 12:36 PM > To: [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: REPOST Applet <-> | FIREWALL <-> Servlet (on Tomcat) > > > Sorry : something happened when I sent my last email, > removing all line breaks. > Here is the real file, please ignore last : So sorry. > > Hi All, > > I have a LOCAL applet (with a LOCAL html page) that is trying to > send an object to a servlet that is sitting on a REMOTE server. > I need to pass an object between the two. > > * I have placed a hole in my firewall > * my local applet is signed > > The servlet will not accept the object. > I have not edited the web.xml file (since I do not know if it would > help) > I did edit my server.xml file in order to specify the http > port (8888). > > The message on tomcat reads : > Status code:404 request:R( + > /signed/WEB-INF/classes/SERVLET_receiveSIMOBJ2.class + > null) msg:null > > > I know that local applets are not supposed to talk to servlets on > different hosts, but I have also been told that with TCP, a > firewall hole, > and a signed applet, it should work. > > Can it ? > > Is there some way on Tomcat to get around this problem ? > This code works either locally or remotely as long as the > code is on the same machine. > > Thanks so very much in advance, it is genuinely appreciated. > > Here is some critical code : > //==================== LOCAL APPLET > String urlstr = > "http://machine.cluster.net:8888/signed/servlet/SERVLET_receiv > eSIMOBJ2"; > // where machine.cluster.net is the server > // 8888 is the port with the hole > > try { > URL servletURL = new URL (urlstr); > URLConnection uc = servletURL.openConnection(); > uc.setDoOutput(true); > uc.setDoInput(true); > uc.setUseCaches(false); > uc.setRequestProperty("Content-type", "application/octet-stream"); > ObjectOutputStream objOut = > new ObjectOutputStream > (new GZIPOutputStream(uc.getOutputStream())); > > // sent it to the servlet > System.out.println("APPLET: SENT TO SERVLET asldkfad" ); > > objOut.writeObject((Object)simobj); > objOut.flush(); > objOut.close(); > System.out.println("APPLET : READING OBJECT BACK " ); > > ObjectInputStream objIn = > new ObjectInputStream > (new GZIPInputStream(uc.getInputStream())); > // read an object from the servlet > simobjout = (SIMDataOBj) objIn.readObject(); > // ooo.junk = "JUNK"; > System.out.println("Received info from Servlet " + > simobjout.A + simobjout.B + simobjout.C + simobjout.D); > > objIn.close(); > > return simobjout; > } > //**************************************** END LOCAL APPLET > > > //**************************************** REMOTE SERVLET > public void doPost (HttpServletRequest request, > HttpServletResponse response) { > System.out.println("In Servlet's do post - reached "); // > NEVER REACHED > try { > ObjectInputStream objIn = new ObjectInputStream > (new GZIPInputStream(request.getInputStream())); > > // set up output stream > > response.setContentType("application/octet-stream"); > ObjectOutputStream objOut = new ObjectOutputStream > (new GZIPOutputStream(response.getOutputStream())); > > > SIMDataOBj simobj = new SIMDataOBj(); > simobj = (SIMDataOBj) objIn.readObject(); > WriteXML (simobj); > > System.out.println("In Servlet ::: Printing the Object's > contents " + simobj.A + simobj.B + simobj.C + simobj.D); > simobj.A = "1 !!!!!!!!!!!! 1"; > simobj.B = "2 !!!!!!!!!!!!!!!!!! 2"; > simobj.C = "3 !!!!!!!!!!!!!!!!!!!! 3"; > simobj.D = "4 !!!!!!!!!!!!!!!!!! 4"; > objOut.writeObject((Object)simobj); > objOut.close(); > System.out.println("End Servlet Communication "); > > } > > //**************************************** END REMOTE Servlet > //**************************************** both local > and remote SIMDataObj > class SIMDataOBj extends Object implements Serializable > { > > String A, B, C, D; > SIMDataOBj(){ > A= new String ("THIS " ); > B= new String (" IS " ); > C= new String (" A " ); > D= new String (" D " ); > } > > } > //**************************************** END both local > and remote SIMDataObj > ========================LOCAL HTML with signed applet > ====================================== > <HTML> > > <BODY> > <APPLET CODE="AppletToServletSIMOBJ.class" > ARCHIVE ="Stry.jar" > WIDTH=430 HEIGHT=270 > name=AppletToServletSIMOBJ > ></APPLET> > > > </BODY> > > </HTML> > ========================END LOCAL HTML with signed applet > ====================================== > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
