我有一个用 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 文件提供构建描述符。