Announcement Announcement Module
No announcement yet.
java EE without application server? Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • java EE without application server?

    What is the advantage of using a J2EE application server? It seems we are using many J2EE features without the need of using a J2EE container! What advantage would it bring to our system? Do we need it?

    I am asking this, because we (two developers) have no experience at all with the non-Spring way of working with J2EE, but we are getting a lot of (good!!) experience with using Spring.

    We are doing a complete redesign of our spaghetti code reservation system (built in-house) which has a server and a rich Swing client and no unit tests... (*hits himself on the head with a hammer*). Except for the javax.mail imports, it used to be based completely on J2SDK.

    We (currently) have no need for webservices/web client and will stick to a rich client using either Eclipse RCP or netbeans RCP. The number of clients

    We already made a clean base system which uses Spring to wire everything together: we have DAO/service interfaces for which transactions are handled at the server side with Spring. The DAO's/services are remotely exposed via RMI using Spring remoting. They are implemented with OpenJPA, at the client side they will use caching with ehcache and send CRUD update notifications through JMS to prevent stale data.

    Still, we feel no need to run our server in a J2EE application server. Simply requesting our Spring contexts is sufficient to start our own "application server" in a few seconds!

  • #2
    I worked the last 8 years on java connectors, similar to JCA, but before JCA existed. It is an API that can be used in application-server-applications or stand-alone-applications.

    As far as I experienced the need for application servers is created by the vendors themselves. One time an *** representative told me she thought the application server as part of the operating system. If you ask *** to run a standalone application, they will fire up a application server first. (This way they have a unified way to manage all applications)

    But also other vendors are doing the same thing and they all have connections in the Java-community. So Java followed their example, they now made it almost impossible to run a standalone apps that needs connection (management) to the backends (of the above vendors), transaction management or security, it is all managed by the appserver. You can still write standalone applications in Java but it's became difficult. (Or learn Spring . I find it true, Spring is an good alternative to an applicationserver)

    My personal opinion is J2EE (and appservers) is necessary for web based applications. But, like mobile phones, "the need" has been created and the "solution" is "expected". It's all about the money.


    • #3
      Originally posted by dlo View Post
      My personal opinion is J2EE (and appservers) is necessary for web based applications. But, like mobile phones, "the need" has been created and the "solution" is "expected". It's all about the money.
      I wish I could say otherwise but in 5+years doing EE for a very, very large company, I've never seen any ROI on the cash we give to *** for their application server other than the dedicated application server admins have access to certified training and the admins have better administrative tools for the servers, clusters, etc. (Things get tricky with a cluster that spanns 12 physical machines with each machine have 3 application server instances and one centralized depolyment manager. And that's one application out of thousands.)

      Everything I need I can do with Tomcat for web stuff. Other than webstuff, you don't need the EE container.


      • #4
        Java EE advantages

        One of the advantages of Java EE over Spring is greater support for transactions. For example the TimerService of EJB supports transactions where the Spring equivalent(s) does not (AFAIK).

        This could in some situations save development time and make your application more robust.