Hi Johnny, Thanks for your responses. I did read them on the day that you posted them but only got a chance now to respond. Needless to say I have gone with a simple HttpURLConnection solution, as my choice out of other suggestions given to me in other threads, of using numerous other solutions including RMI, HttpInvoker, JMS, etc. Eventually, the simple HttpURLConnection is nice and lightweight for my needs right now. And now that the beast that is the Commons HttpClient is out of the mix things are far more efficient.
Many thanks, Darryl Pentz P.S. Nice to see Saffers helping other Saffers :-) ----- Original Message ---- From: Johnny Kewl <[EMAIL PROTECTED]> To: Tomcat Users List <[email protected]> Sent: Monday, September 15, 2008 11:15:26 AM Subject: Re: Interapp Communications ----- Original Message ----- From: "Darryl Pentz" <[EMAIL PROTECTED]> To: "Tomcat Users List" <[email protected]> Sent: Monday, September 15, 2008 10:37 AM Subject: Interapp Communications > Some time back I needed to communicate between two apps running in the > same Tomcat instance. I decided on using a simple HTTP call with Apache > Commons HttpClient. For some reason use of this class is causing PermGen > errors (I should add that I use a dynamic language in the mix, which might > impact that in some way) so I want to abandon that approach anyway, > because it just doesn't 'feel right' :-). > > So I was wondering, is JMS the way to go with something like this? I see > Tomcat is able to use JMS via a JNDI read-only lookup. > > Many thanks, > Darryl Pentz Well, the way you doing it is also good for cross machine, cross domain.... you using simple SOAP... Axis "your way"... That HTTPd client is quite heavy, maybe Java's URL Connection will do what you need I dont bother too much with the stuff out there... JMS is a way, but you looking for JNDI registries now. Not sure if TC built in JNDI... targeting tomcat... will be enuf? Some very rough code for you to play with... Java really makes http very very easy private byte[] loadURLFileBytes(String urlPlusFile) { byte[] data = new byte[0]; try { URL url = new URL(urlPlusFile); URLConnection connection = url.openConnection(); connection.setDoInput(true); //GET connection.setUseCaches(false); // get fresh from server InputStream in = connection.getInputStream(); BufferedInputStream bis = new BufferedInputStream(in); int length = connection.getContentLength(); int len; byte[] buffer = new byte[512]; while ((len = bis.read(buffer)) != -1) { data = appendBlock(data,buffer,len); } in.close(); bis.close(); } catch(Exception ex) { //JOptionPane.showMessageDialog(null, ex.getMessage() , "Error during data download", JOptionPane.WARNING_MESSAGE); return null; } return data; } That all your HTTP is doing for you... Then Tomcat can do cross contexts as well... theres a cross context flag to set and some code that looks like this.. The post also describes the issue... http://forums.java.net/jive/thread.jspa?messageID=215873 One day when your site is huge, you making millions... maybe your cross machine way will sound good again ;) Theres SOA/EJB as well... ;) Have fun... --------------------------------------------------------------------------- HARBOR : http://www.kewlstuff.co.za/index.htm The most powerful application server on earth. The only real POJO Application Server. See it in Action : http://www.kewlstuff.co.za/cd_tut_swf/whatisejb1.htm --------------------------------------------------------------------------- --------------------------------------------------------------------- To start a new topic, e-mail: [email protected] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: [email protected] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
