weblogic 中 EAR 部署的问题
Problems with EAR deployment in weblogic
我在尝试在 Weblogic 上的企业应用程序中部署 WAR 文件时遇到问题。
Web 应用程序在部署时作为单独的 .war 文件工作正常,但是当捆绑在一起在 .ear 文件中时,似乎在访问每个 Web 应用程序的 WEB-INF/classes 目录中的资源时出现问题。
我有一些资源需要从该目录访问(例如 log4j.xml 文件)。部署 .ear 文件后,Weblogic 将其解压缩到服务器上的 tmp 位置。一切似乎都是正确的,除了 WEB-INF/classes 目录中有 none 个预期文件。它们存在于 .ear 文件中的 .war 文件中。
WEB-INF 和WEB-INF/lib 目录中的文件以及.war 文件的WEB-INF 和基本目录都存在,但是WEB-INF/classes 目录神秘地是空的.
Weblogic的ClassLoader表示这个目录的路径在classpath中,但是没有文件,显然是找不到的。
有谁知道可能导致此行为的原因以及如何解决它?
我绞尽脑汁想出来了,这似乎是 application.xml 中的版本问题,出于某种原因,当设置为 "jee5" Weblogic (10.3.6) 时不扩展 WEB-INF/classes 目录中的任何内容。
文件确实存在,但不是从 ear 文件中的 .war 文件中提取的。
切换到版本“1.4”解决了这个问题。
为什么因为 weblogic 将所有 classes 捆绑到 _wl_cls_gen.jar。所以在 class 路径中必须提到我们应用程序中的这个路径目录。
例如:
classpath.append("." + pathSeperator + path + File.separator +"lib"+
File.separator+"_wl_cls_gen.jar" + pathSeperator);
希望这对您有所帮助。
我在尝试在 Weblogic 上的企业应用程序中部署 WAR 文件时遇到问题。
Web 应用程序在部署时作为单独的 .war 文件工作正常,但是当捆绑在一起在 .ear 文件中时,似乎在访问每个 Web 应用程序的 WEB-INF/classes 目录中的资源时出现问题。
我有一些资源需要从该目录访问(例如 log4j.xml 文件)。部署 .ear 文件后,Weblogic 将其解压缩到服务器上的 tmp 位置。一切似乎都是正确的,除了 WEB-INF/classes 目录中有 none 个预期文件。它们存在于 .ear 文件中的 .war 文件中。
WEB-INF 和WEB-INF/lib 目录中的文件以及.war 文件的WEB-INF 和基本目录都存在,但是WEB-INF/classes 目录神秘地是空的.
Weblogic的ClassLoader表示这个目录的路径在classpath中,但是没有文件,显然是找不到的。
有谁知道可能导致此行为的原因以及如何解决它?
我绞尽脑汁想出来了,这似乎是 application.xml 中的版本问题,出于某种原因,当设置为 "jee5" Weblogic (10.3.6) 时不扩展 WEB-INF/classes 目录中的任何内容。
文件确实存在,但不是从 ear 文件中的 .war 文件中提取的。
切换到版本“1.4”解决了这个问题。
为什么因为 weblogic 将所有 classes 捆绑到 _wl_cls_gen.jar。所以在 class 路径中必须提到我们应用程序中的这个路径目录。
例如:
classpath.append("." + pathSeperator + path + File.separator +"lib"+
File.separator+"_wl_cls_gen.jar" + pathSeperator);
希望这对您有所帮助。