I have a JAR file for authorization. I need it for each of my WAR files. All the WAR files are packaged in an EAR file. Do I have to repeat this common JAR in every WAR, or is there a structure for common libraries?
So my example looks something like this...
big.ear
- META-INF
- MANIFEST.MF
- application.xml
- appl1.war
- META-INF
- MANIFEST.MF
- WEB-INF
- web.xml
- lib
- unique1.jar
- unique2.jar
- unique3.jar
- common1.jar
- jsps/html/etc
- appl2.war
- META-INF
- MANIFEST.MF
- WEB-INF
- web.xml
- lib
- unique3.jar
- unique4.jar
- common1.jar
- jsps/html/etc
- appl3.war
- META-INF
- MANIFEST.MF
- WEB-INF
- web.xml
- lib
- unique5.jar
- common1.jar
- jsps/html/etc
Each of my WAR applications can see common1.jar, but it is in the EAR three times.
Where in the EAR structure could I put common1.jar so that appl1, appl2, and appl3 could see it without repeating it three times?
-
Your app server should have a folder like shared/lib where you can put jar files that can be shared by multiple webapps in the same instance.
dacracot : This will probably work, but I consider it bad practice. The EAR should be self contained.cynicalman : Definitely a bad practice. What if you want to upgrade this jar? You should be able to do that with a deployment, you shouldn't have to alter the server setup. -
The standard way is to put the JARs at the root of your EAR and reference them in the
Class-Pathattribute of the WARs'META-INF/MANIFEST.MF. See this article.Check your container's documentation to make sure it is supported.
dacracot : Looking into it.
0 comments:
Post a Comment