尝试在Weblogic上的企业应用程序中部署WAR文件时遇到问题。
[Web应用程序在部署时可以作为单独的.war文件正常工作,但是将它们捆绑在一起作为.ear文件时,访问每个Web应用程序的WEB-INF / classes目录中的资源似乎存在问题。
我有一些需要从此目录访问的资源(例如log4j.xml文件)。部署.ear文件时,Weblogic会将其解压缩到服务器上的tmp位置。一切似乎正确,除了WEB-INF / classes目录中没有预期的文件。它们存在于.ear文件中的.war文件中。
WEB-INF和WEB-INF / lib目录中的文件以及WEB-INF和.war文件的基本目录都存在,但是WEB-INF / classes目录神秘地是空的。
WebLogic的ClassLoader指示此目录的路径在类路径上,但是没有文件,显然它找不到它们。
没有人知道是什么原因导致了这种现象以及如何解决它?
我经过大量的摸索后才发现,似乎是application.xml中的Version问题,由于某种原因,当设置为“ jee5”时,Weblogic(10.3.6)不会在WEB-INF中进行任何扩展/ classes目录。
文件肯定在那里,但是没有从ear文件中的.war文件中提取。
切换到版本“ 1.4”解决了该问题。
为什么,因为weblogic将所有类都捆绑到_wl_cls_gen.jar中。因此在类路径中必须从我们的应用程序中提及此路径目录。
例如:
classpath.append("." + pathSeperator + path + File.separator +"lib"+
File.separator+"_wl_cls_gen.jar" + pathSeperator);
希望这项帮助。