我在尝试在Weblogic上的企业应用程序中部署WAR文件时遇到问题。
Web应用程序在部署时可以作为单独的.war文件正常工作,但是当在.ear文件中捆绑在一起时,在每个Web应用程序的WEB-INF / classes目录中访问资源时似乎存在问题。
我有一些资源需要从这个目录访问(例如log4j.xml文件)。部署.ear文件时,Weblogic将其解压缩到服务器上的tmp位置。一切似乎都是正确的,除了WEB-INF / classes目录中没有预期的文件。它们存在于.ear文件中的.war文件中。
WEB-INF和WEB-INF / lib目录下的文件以及.war文件的WEB-INF和基目录都存在,但是WEB-INF / classes目录是神秘的空白。
用于Weblogic的ClassLoader表示此目录的路径位于类路径上,但没有文件,显然无法找到它们。
是否有人知道可能导致此行为的原因以及如何解决此问题?
答案 0 :(得分:0)
我经过多次讨论后想到这一点,似乎是application.xml中的版本存在问题,出于某种原因设置为“jee5”时,Weblogic(10.3.6)没有在WEB中扩展任何内容INF / classes目录。
文件肯定存在,但未从ear文件中的.war文件中提取。
切换到版本“1.4”解决了问题。
答案 1 :(得分:0)
为什么,因为weblogic将所有类都捆绑到_wl_cls_gen.jar中。因此在类路径中必须从我们的应用程序中提及此路径目录。
例如:
classpath.append("." + pathSeperator + path + File.separator +"lib"+
File.separator+"_wl_cls_gen.jar" + pathSeperator);
希望这会有所帮助。