Need help picking a Java EE development stack/application server and operating system

Discussion in 'Programming' started by slugg, Jan 19, 2013.

  1. slugg

    slugg Diamond Member

    Joined:
    Feb 17, 2002
    Messages:
    4,615
    Likes Received:
    30
    I'm looking to make a virtual machine running some flavor of Linux, install a Java application server, deploy my proprietary software to the VM/app server, then distribute the VM as a virtual appliance. I'm not well versed with either Linux or Java, so I seek the collective wisdom of AnandTech.

    So here are the needs:
    1. Operating system must be able to be freely distributed even though the software it ships with will NOT be free.
    2. The application server/dev stack must implement Java EE 6, but 7 would be nice.
    3. The app server must also be freely distributable, even when shipped with non-free, paid software.
    4. Setup and management of the OS and AS should be simple. I don't want any "1337 h4xer LiNuX" crap; I just want something straight forward and effective.

    Here's what I'm thinking so far for the OS (one of these):
    1. CentOS - free alternative to RedHat, rock solid SE-Linux, great support
    2. Oracle JeOS - designed for application distribution, small footprint, not sure about support
    3. ???

    Here's what I've come up with for the application server and development stack (one of these):
    1. JBoss - if using CentOS, this would kind of make sense. RHEL and JBoss are packaged together routinely, and CentOS is a free alternative to RHEL.
    2. Glassfish - reference Java EE platform maintained by Oracle. If using Oracle JeOS, this would kind of make sense, too.
    3. ??

    What do you guys think?


    edit:
    I just started messing around with Oracle Linux... Looks all fine and dandy until you realize that it will not receive updates unless you pay for support! What a load of crap. What's the point of touting it as a free, enterprise solution if it can't even receive security updates for free?
     
    #1 slugg, Jan 19, 2013
    Last edited: Jan 19, 2013
  2. Loading...

    Similar Threads - picking Java development Forum Date
    Code documentation question about AF and RI (Java) Programming Friday at 11:27 PM
    Android/Java n00b encounters a bug I can't think my way around. Programming May 9, 2017
    What's it like to be a SalesForce developer? Programming May 4, 2017
    What is the Java "Enterprise-y" way of queuing long running processes ? Programming Apr 12, 2017
    Java array getters and setters.. help? Programming Mar 31, 2017

  3. Leros

    Leros Lifer

    Joined:
    Jul 11, 2004
    Messages:
    21,883
    Likes Received:
    6
    CentOS with Tomcat 7
     
  4. douglasb

    douglasb Diamond Member

    Joined:
    Apr 11, 2005
    Messages:
    3,163
    Likes Received:
    0
    This.
     
  5. Markbnj

    Markbnj Elite Member <br>Moderator Emeritus
    Moderator

    Joined:
    Sep 16, 2005
    Messages:
    15,688
    Likes Received:
    8
    Because Oracle.
     
  6. beginner99

    beginner99 Diamond Member

    Joined:
    Jun 2, 2009
    Messages:
    3,167
    Likes Received:
    94
    AFAIK Tomcat is not fully Java EE 6 compliant. So depending on the OPs proprietary Application it might not work.

    As OS I would use Lubuntu (Ubuntu with LXDE) or Ubuntu Server (no GUI).
     
    #5 beginner99, Jan 21, 2013
    Last edited: Jan 21, 2013
  7. sourceninja

    sourceninja Diamond Member

    Joined:
    Mar 8, 2005
    Messages:
    8,642
    Likes Received:
    19
    For a VM I would go with CentOS using their minimal install option. Then install the packages you need to support your application. The main goal here is getting a vm that ONLY runs the minimum needed to support your application. Stuff like desktops, services that are not used, etc will only up your vm's system requirements, bloat the vm's footprint, and provide more attack vectors. Ubuntu server's "minimal install for a virtual machine" is also a good option, but for professional work I'd go with Cent. Only because more people will be running redhat in their datacenter and will be familiar with it.
     
  8. slugg

    slugg Diamond Member

    Joined:
    Feb 17, 2002
    Messages:
    4,615
    Likes Received:
    30
    Yea, I was thinking this, too. I've rolled a couple CentOS minimal systems over the weekend to toy around. So far, I think it's a great option. I'm equally familiar with RedHat/CentOS as I am with Debian/Ubuntu (not saying much - I'm not a Linux expert), but CentOS is a whole lot easier to harden than Ubuntu. For production, I want something that's designed for production, so CentOS wins it for me.

    For my particular application, a "complete" Java EE implementation might not be necessary. I'm not entirely sure yet. That being the case, why are some of you recommending Tomcat? Why not JBoss or Glassfish? I'm trying to understand the advantages so I can make an educated decision.

    As for the DBMS, I'm thinking Oracle XE. Can anyone come up with a compelling reason to use PostgreSQL? MySQL is out of the question. I'm picking Oracle so far because it's more widely understood due to its popularity, plus the Oracle SQL Developer software puts PGAdmin to shame. Then again, it was maybe two years ago the last time I checked.

    Thanks, all.
     
  9. beginner99

    beginner99 Diamond Member

    Joined:
    Jun 2, 2009
    Messages:
    3,167
    Likes Received:
    94
    Tomcat is more lightweight.Tomcat is very nice, a lot of developers and admins know it. It is far simpler than a full blown java ee container.

    This is easy. PostgreSQL is free and open source and free not meaning price but free to sue with no restrictions. The Question is more why you should not use it. Only reason I see is if the application only runs on oracle or 90% of your costumers use it with oracle.

    Whats you issue with PGAdmin? Works fine for me. Note: I use SQLDeveloper daily and don't really like it that much. Actually I prefer HeidiSQL (MySQL, SQlServer) over both of them.
     
  10. Nothinman

    Nothinman Elite Member

    Joined:
    Sep 14, 2001
    Messages:
    30,672
    Likes Received:
    0
    Agreed. One should default to either MySQL or PostgreSQL and need a very, very good reason to even consider Oracle not vice versa.
     
  11. JMasters

    JMasters Junior Member

    Joined:
    Jul 16, 2013
    Messages:
    5
    Likes Received:
    0
  12. tfinch2

    tfinch2 Lifer

    Joined:
    Feb 3, 2004
    Messages:
    22,120
    Likes Received:
    0
    We have standarized on SLES, Tomcat, and PostgreSQL where I work for our virtual appliances. We picked SLES because we worked out a deal with them. Before SLES, we used CentOS. You could also look at openSUSE too.

    To build the appliance, take a look at VMware Studio or SUSE Studio.
     
    #11 tfinch2, Aug 20, 2013
    Last edited: Aug 20, 2013
  13. smackababy

    smackababy Lifer

    Joined:
    Oct 30, 2008
    Messages:
    26,939
    Likes Received:
    64
    By very, very good reason you mean "we are a company and have to waste as much money as possible on a database solution"? Because that is what I see a lot. =(
     
  14. hooflung

    hooflung Golden Member

    Joined:
    Dec 31, 2004
    Messages:
    1,190
    Likes Received:
    1
    I use CentOS + Tomcat + Infinispan + Spring 3.2 + PostGresql in my out of office endeavors.

    I don't need a full J2EE stack because that is not really a big deal now a days since J2EE isn't really what people care about. Not to stir up a holy war with purists (I think J2EE has its place) but it is playing catchup and isn't as intuitive for most things.

    However, if you need J2EE stack and you are doing CentOS you could leverage Apache TomEE. It is pretty good. Tomcat's biggest weakness imo is the connection pooling (has gotten better admittedly) and JNDI ease-of-use.

    If you need JNDI for a lot of things then I would probably look towards Glassfish 4 or JBOSS. CentOS is fine but Ubuntu Server is just as good, and in some ways better since you get even closer to up-to-date OS and OpenJDK updates.

    Database should probably be Postgresql. The reason why I say this is that if you go JPA chances are your entities will work without much tweaking between the two (for sequences etc). If you use MSSQL, Mysql/Maria or anything else with a built in auto increment you will have a bit different entity code.

    Good luck... and stay away from JeOS. Stick to the known distros unless forced by a vendor.