----- Original Message ----- From: "Darryl Pentz" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
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: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to