weblogic with spring hibernate mappingDirectoryLocations error
_wls_cls_gen.jar Issue
from http://jaysensharma.wordpress.com/2009/12/28/_wls_cls_gen-jar-issue/
WebLogic 10 And WebLogic 10.3 creates a Jar file (_wls_cls_gen.jar)while deploying our Archieved Applications (WAR files). Which includes all the contains available inside the WEB-INF/classes directory inside this jar file(_wls_cls_gen.jar). I didnot find a way to tell WebLogic Server to not to create this JAR file, because it creates many issues.
Example: if we have placed a Property file or Some XML files inside the “WEB-INF/classes” directory with the name “test.properties” or “test.xml” then WebLogic Server will place this Property file as well inside the (_Wls_cls_gen.jar) file while deployment…
zip:C:/bea103/user_projects/domains/Test_Domain/servers/AdminServer/tmp/_WL_user/testWebApp/8j5e1y/war/WEB-INF/lib/_wl_cls_gen.jar!/test.properties
Now if we write the following code inside out application like Servlet then it won’t work and will fail while reading the Properties file:
Note: Many frameworks uses the Following techinques and Sometimes WebLogic Code causes this issue..(http://forums.oracle.com/forums/thread.jspa?messageID=4217650#4217650)…which may cause our applications to fail while reading jar Archieved resources. because they uses the following techinque to read the resources available inside a JAR file:
——————————————-WRONG – APPROACH – BELOW———————
InputStream stream = null;try {Properties p = new Properties();String path=Thread.currentThread().getContextClassLoader().getResource(“Info.properties”).getPath();System.out.println(“—————-PATH: “+path);p.load(new java.io.FileInputStream(path));Host = p.getProperty(“Host”);Pot = p.getProperty(“Port”);User = p.getProperty(“User”);Passwd = p.getProperty(“Passwd”);System.out.println(“Property Key-Values:” +”\n”+ Host +”\n”+ Pot + “\n”+User+ “\n”+Passwd);} catch (Exception e) {e.printStackTrace();}InputStream stream = null;System.out.println(“————————————”);try {Properties p = new Properties();stream=this.getClass().getClassLoader().getResourceAsStream(“Info.properties”);p.load(stream);Host = p.getProperty(“Host”);Pot = p.getProperty(“Port”);User = p.getProperty(“User”);Passwd = p.getProperty(“Passwd”);System.out.println(“Property Key-Values:” +”\n”+ Host +”\n”+ Pot + “\n”+User+ “\n”+Passwd);} catch (Exception e) {e.printStackTrace();}<web-app-container> <show-archived-real-path-enabled>true</show-archived-real-path-enabled> </web-app-container>
<container-descriptor> <show-archived-real-path-enabled>true</show-archived-real-path-enabled> </container-descriptor>