【发布时间】:2017-10-07 14:23:55
【问题描述】:
- 应用程序是 EAR 文件
- 共享库,其中第三方 jar 被捆绑并作为共享库部署到托管服务器。
- weblogic-application.xml 文件,其中创建了对共享库的库引用并存在于 EAR 文件(META-INF 文件夹)中。
- 已将共享库作为目标部署到托管服务器并成功。
- 在部署 EAR 文件时,即使在 weblogic-application.xml 中进行了引用,从控制台部署中选择 EAR 也会导致共享库中存在类的 ClassNotFoundException。
- 请注意,如果库部署以管理服务器和托管服务器为目标,则 EAR 文件的部署是成功的,没有任何异常。
- 单一管理服务器部署工作正常,对于相同的设置没有任何问题。
- 部署预计 JAR 是管理服务器的类路径,同时部署到托管服务器。这是有意的行为吗?
这里是否缺少任何设置配置?如果有任何步骤出错,请纠正我。 更新:我们使用 wldeploy 对 ant 脚本进行了相同的部署,没有遇到任何错误,应用程序部署成功。
【问题讨论】:
-
您的设置在单个服务器域上正常运行这一事实使得做出任何推断变得困难。您是否确保您的部署遵循此链接底部 Oracle 建议的最佳实践? Best Practices for Using Shared Java EE Libraries
-
显而易见:确保共享库和应用程序针对同一托管服务器,否则应用程序将无法部署。
-
@VivekRatanSinha:感谢 cmets。共享库和应用程序仅部署在托管服务器中。遵循建议的链接最佳实践。问题是为什么在部署期间强制共享库也存在于管理服务器中,并且添加我使用 wldeploy 使用 ant 脚本进行了相同的部署,并且没有遇到错误并且仍然可以正常工作。我担心的是为什么不在控制台中以相同的方式部署
-
如果您说使用 ant 部署 EAR 和共享库在托管服务器上的部署工作正常,您应该更新您的问题以反映这一点。请尝试以下操作: 1. 取消部署 EAR 和 SHRDLIB。 2.关闭域。 3.清除服务器缓存,删除
${domain}/servers/${AdminServer}/tmp和${domain}/servers/${ManagedServer}/tmp下的所有文件夹。 4. 仅使用控制台重新部署到 ManagedServer。
标签: deployment weblogic12c jibx