我有一个用 Eclipse 编写并部署在 WebLogic 上的 Java EE Web 应用程序。
当我从 Eclipse(作为虚拟应用程序)部署它时,它工作正常。当我尝试创建一个 EAR 文件并从 WebLogic 控制台部署它时,我得到一个ClassNotFoundException
.
可能是什么原因?
如何创建与虚拟应用程序结构相匹配的 EAR 文件以使其正常工作?
我有一个用 Eclipse 编写并部署在 WebLogic 上的 Java EE Web 应用程序。
当我从 Eclipse(作为虚拟应用程序)部署它时,它工作正常。当我尝试创建一个 EAR 文件并从 WebLogic 控制台部署它时,我得到一个ClassNotFoundException
.
可能是什么原因?
如何创建与虚拟应用程序结构相匹配的 EAR 文件以使其正常工作?
通常这意味着没有部署依赖库。这往往是 Eclipse 具有依赖关系的地方,它作为内部构建的一部分来实现。在自己构建它时,确定您需要哪些库,哪些是您的应用程序的一部分,哪些是 WebLogic 的一部分。对于您自己的库(即那些在 lib 文件夹中的库,或者那些应该在 lib 文件夹中的库),请确保它们位于类路径中。对于外部库,即那些 WebLogic 实现,请确保您设置了适当的模式描述符来告诉 weblogic 它需要与您的应用程序一起部署哪些库(通常是 JSF 之类的东西)。
如果您想对构建进行适当的控制,请查看 Ant 之类的东西。您基本上通过 xml 告诉它需要什么,将它们放在一起,然后它会为您生成 Ear/Jar 文件(该 Ear 文件还包含所有依赖项,和/或您的 weblogic 内置库的描述符)。
如果您计划进行许多构建,我发现 Ant 在设置后很有用(您也可以将它与其他程序绑定,因此它可以将构建推送到您的源代码控制服务器作为标签、构建文档等)。Ant 可能会很痛苦——您需要为需要构建的每个库以及 Ear 文件提供构建描述符。