I need to create 2 war applications deployed on tomcat server.
One of the applications have the exact same logic and code as the other application but with added changes to the view and controllers.
Then App1 and App2 will have the same code to access data and I don’t want to duplicate code.
My idea is create 2 WARs and these WAR files should use a library or other project (I don’t know) that has access to the database.
Which solution is the best for performance?
Option 1
If you are sharing code (and it’s a big piece of code, which drives you crazy while uploading the war-files) it may be an option to create a jar containing the code and add the jar file to tomcats library-folder, which is
${CATALINA_BASE}/lib/Note that this is usually not something you want to do lightly, because that jar file will be available to ALL war-files on the tomcat, creating possible namespace-problems.
Option 2
If sharing the code with all the projects on the application-server is not an option you’ll have to add the jar-file to the projects and add it into it’s classpath (which happens automatically within eclipse if you add the jar into
${PROJECT_ROOT}/WebContent/WEB-INF/lib).
Preformance-wise this doesn’t really make a difference since tomcat will load the class-files, which are not very big. The instances might be, but the type of deployment doesn’t really have an impact upon instances.