aspose file tools*
The moose likes Web Component Certification (SCWCD/OCPJWCD) and the fly likes META-INF directory Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Web Component Certification (SCWCD/OCPJWCD)
Bookmark "META-INF directory" Watch "META-INF directory" New topic
Author

META-INF directory

padma jyotsna
Greenhorn

Joined: Jun 07, 2010
Posts: 17
I have one question on META-INF directory.
is it mandatory (i.e by the Spec) that a WAR file must have a META-INF directory?

As far as i know, even WEB-INF folder is not a must in a web app. Am I right?

What does SCWCD expect as answer for such a question?
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9305
    
  17

1. The META-INF directory is required if you are deploying your application as a WAR file.
2. The WEB-INF directory is required in a web application...


SCJP 6 | SCWCD 5 | Javaranch SCJP FAQ | SCWCD Links
padma jyotsna
Greenhorn

Joined: Jun 07, 2010
Posts: 17
Thanks for the reply..but I am not clear yet.

As per what I have read in SCWCD exam study guide by David Bridgewater , it says

"Having a directory called WEB-INF is a strong recommendation ,but not an obligation.
If a question asks you to say whether a web application must have particular directories.The correct answer is "No"."

Hence ,I am not clear on what is the right answer? Is there an error in the above statement?
please clarify..
Rajeev Rnair
Ranch Hand

Joined: Mar 22, 2010
Posts: 308

Usually the WEB-INF and JSP's comes under application root directory and it do have "classes", "lib", "tags" etc as sub directories as well as web.xml. I haven't seen any web application deployed without a WEB-INF folder. Never tried deploying a web app without WEB-INF. This is what HFS book says!
To deploy a web app successfully, you MUST follow this structure. WEB-INF must be immediately
under the application context (MyTestApp in this example). The “classes” directory must be
immediately inside “WEB-INF”. The package structure for the classes must be immediately inside
“classes”. The “lib” directory must be immediately inside “WEB-INF”, and the JAR fi le must be
immediately inside “lib”. The “META-INF” directory must be immediately inside the JAR, and TLD
fi les in a JAR must be somewhere under “META-INF” (they can be in any subdirectory, and “TLDs” is
not required as a directory name). TLDs that are NOT in a JAR must be somewhere under “WEB-
INF”. Tag Files (fi les with a .tag or .tagx extension) must be somewhere under “WEB-INF/tags”
(unless they’re deployed in a JAR, in which case they must be somewhere under “META-INF/tags”).
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9305
    
  17

The spec is unclear about whether WEB-INF is mandatory. Checkout this old thread on this...
Rajeev Rnair
Ranch Hand

Joined: Mar 22, 2010
Posts: 308

Ankit Garg wrote:The spec is unclear about whether WEB-INF is mandatory. Checkout this old thread on this...
Thanks Ankit! wow!! lot of information on that thread !
padma jyotsna
Greenhorn

Joined: Jun 07, 2010
Posts: 17
Ankit Garg wrote:The spec is unclear about whether WEB-INF is mandatory. Checkout this old thread on this...


Thanks for all the replies..
I have checked the spec and the above referred thread. There is nothing mentioned clearly about whether WEB-INF and META-INF are mandatory.

Finally is it correct to say that WEB-INF & META-INF directories must be there. Is that correct? thats what the exam expects?

But at this link ScwcdHints , point 12 is contradictory. I believe its taken from DavidBRIDGEWATER book.

Frits Walraven
Creator of Enthuware JWS+ V6
Bartender

Joined: Apr 07, 2010
Posts: 1696
    
  25

Hi Padma,

Finally is it correct to say that WEB-INF & META-INF directories must be there

Not exactly, they should be there in normal circumstances, but if you leave them out the behaviour of your web-app is not guaranteed.
For the tomcat container there is no problem: the application works ok (but that doesn't guarantee the same behaviour in another container)

I am pretty sure that they won't ask such a question in an exam because the specs are not clear about it. Exam questions are based on the things that are specified.

Regards,
Frits
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: META-INF directory