1.
You should probably think in terms of transmitting a
String[] rather than an ArrayList.
2. Why not just serialize the String[] to some shared file location and notify the other application with JMS. That way communication is asynchronous and would still work if the other application is temporarily busy or offline. If you don't delete the previous serialized String[] until the new one has been written, you remove a possible failure point.
Bill