Connectivity to Legacy Systems
Over time, every system becomes a legacy system. Companies usually cannot afford to rewrite all their existing systems, so it becomes imperative that the new system be able to communicate with the old systems. This requires the people who know the older systems, both functionally and technically, to communicate what constitutes a logical transaction to the Java architects and programmers. Many legacy systems have already built adapters to work with Java, but if not, an interface might have to be written for the application to talk to Java. Most of the bigger ERP systems already have Java connectors, and with the release of the J2EE Connector Architecture (J2EE-CA) specification, they'll be coming out with J2EE-CA–compliant connectors in the near future. This enables Java programmers to spend less time learning a company's Java API, and more time working with the actual transaction needed.
Transactions with legacy systems become more complicated if two-phase commits are necessary. A two-phase commit ensures that an entire transaction, which might involve multiple systems, either entirely completes or rolls back and does not happen at all. Some systems don't have the capability to do this, which usually means it has to be built. As it stands right now, the skill sets for legacy systems require a Java programmer who knows the legacy Java API and a functional person who knows the transactions needed.