Web模块的依赖关系未通过Eclipse Kepler部署在Weblogic服务器10.3.6上

时间:2014-12-28 12:22:30

标签: java eclipse deployment weblogic ear

所以我们有一个包含三个模块的Ear项目(MyEar):

  • 客户端模块(我们称之为MyClient
  • EJB模块(让我们称之为MyEjbModule
  • 网络模块(我们称之为MyWebModule

网络模块在MyWebModule/WebContent/MyApp.jnlp下包含一个jnlp文件 这个jnlp指向我们想要随应用程序自动部署的所需jar文件,这是我们目前面临一些问题的地方。

在eclipse中,我们设置了MyWebModule项目,将jar文件从某个位置部署到应用程序的根目录(也部署了jnlp文件)。

这在一台机器上工作正常,每次我们将项目发布到服务器时,都会从指定位置复制一个新的jar。但是,在另一台机器上,项目正确地部署了除了这个jar之外的所有内容,我们必须将它放在WebContent下的jnlp文件中进行部署(这意味着我们必须每次都手动更新该jar)。

经过大量研究并试图寻找环境差异后,我们在{workspace}/.metadata/.plugins/org.eclipse.core.resources/.projects/MyEar/beadep/my_domain/MyEar/文件夹下找到了一个区别,这似乎是Eclipse在发布到服务器之前将EAR分级的地方

在工作部署中,每次我们发布应用程序时,都会看到更新的ear文件夹结构:

  • LIB
  • META-INF
  • MyClient.jar
  • MyEJBModule.jar
  • MyWebModule.war

并且Web模块的WAR文件夹包含jnlp文件旁边的正确jar。

但是,在另一台机器上,在该文件夹下,我们看到一个名为split_src的文件夹,其中只包含一个带有几个描述符的META-INF文件夹和一个名为.beabuild.txt的文件

值得注意的是,在将EAR项目导出到ear文件时,jar会被正确复制并放置在耳内,就像它应该的那样。

有没有人知道为什么beadep文件夹中的差异,以及为什么不在一台机器上复制依赖项?

1 个答案:

答案 0 :(得分:0)

好的,事实证明我们的两台机器有一个不同的发布模式"设置。

我不确定这个的确切原因,但是如果您将服务器发布模式设置为" Exploded Archive"与虚拟应用程序(拆分源)发布模式

不同,额外的依赖关系已正确部署到Web模块中

this question

中有更多信息