如何为在Eclipse中创建的应用程序将WebSphere类加载器策略设置为PARENT_LAST?

时间:2014-05-30 21:15:43

标签: java eclipse websphere

我们公司目前正在使用RAD来开发我们的Java应用程序,但我们正在寻求使用WebSphere Developer Tools迁移到Eclipse。我们过渡的试点进展顺利,除了我们遇到最初在Eclipse中创建的新应用程序的类加载器策略问题,而不是RAD。我们最初由RAD创建的项目在通过Eclipse发布时使用正确的类加载器策略(PARENT_LAST)进行部署,因为我们最初使用RAD中的部署描述符编辑器在/src/main/application/META-INF/ibmconfig/cells/defaultCell/applications/defaultApp/deployments/defaultApp/deployment.xml中设置了正确的类加载器策略。但现在使用Eclipse&在WebSphere Developer Tools中,我们不再拥有很好的部署描述符编辑器UI来为我们创建或修改此文件(显然是it's not included with the WDT plugin)。

那么,我的问题是,设置此类加载器策略的最佳方法是什么?当我们将PARENT_LAST的类加载器策略部署到本地服务器时,我们仍需要一些新的应用程序。我们的团队虽然对此有所了解,但目前我们可以看到4个选项。

  1. 每次发布​​后打开管理控制台并进行更改。这将是一个巨大的痛苦,甚至不是一个真正的选择。
  2. 更改服务器配置文件设置,以便为所有应用程序使用PARENT_LAST类加载器策略。但是,对于我们公司的所有应用程序来说情况并非如此,并且不适用于所有组。
  3. 每次发布​​后运行jython脚本以设置类加载器策略。这比选项1略好,但不是很多。
  4. 在与RAD创建的其他应用相同的位置手动创建deployment.xml文件,其结构与RAD创建的deployment.xml文件相同,并根据需要对每个应用进行修改。
  5. 选项4似乎是最好的,但它仍然是一个手动过程,并且有些容易出错。即使我们的大多数开发人员都能为新应用程序采用这种方法,但如果这是一个简单的单键式点击类型过程,那将是最理想的。

    所以考虑到IBM已经从WDT插件中省略了部署描述符编辑器,看起来似乎选项4是我们唯一的希望,但我会再次问,是否还有其他更好的方法来设置WebSphere类加载器在Eclipse中创建该应用程序时应用程序的PARENT_LAST策略?感谢任何帮助。谢谢。

3 个答案:

答案 0 :(得分:2)

嗯,Eclipse是免费的,而Rational Application Developer每年花费约5,000美元(每个开发人员)。漂亮的部署编辑器(它不是那么好。它往往包含各种不需要的东西。谁需要那里定义的Derby DataSource?)是你为了节省吨而必须放弃的东西之一现金每年。

我很离题。

选项(1)是一个完整的禁忌。您不希望依赖手动步骤进行部署;您应该尽可能地自动化部署。

选项(2)可能。我不确定您使用的是哪种WebSphere,但如果您使用的是Network Deployment版本,那么您可以设计一个由多个服务器和集群组成的WebSphere拓扑。理论上,您可以提出这样的拓扑,即PARENT_LAST个应用程序在特定服务器(或集群)上运行,PARENT_FIRST个应用程序在另一个服务器(或集群)上运行。

您可以将选项(2)与技术计划结合起来,让所有应用程序都与PARENT_LAST一起使用。如果您的应用程序使用的是WebSphere正常使用的流行第三方库(出于内部用途),那么这是推荐的方法。例如,如果您正在使用Commons Lang,那么您已经建议切换到PARENT_LAST,因为WebSphere使用自己的Commons Lang内部副本可能与您的内容相冲突。

选项(3) - 它当然比选项(1)更好,但如果您可以正确使用WebSphere拓扑,则不一定比选项(2)差。

选项(4)更难实现,但我相信这是最好的方法:

  1. 这是每个EAR(以及EAR中存在的每个WAR)的一次性设置工作。
  2. 一旦完成,部署就可以轻松实现,因为不需要额外的步骤。
  3. 如果您正在使用本地测试环境来测试代码,并且您正在快速将工作区中的应用程序发布到本地测试环境中,那么这种方法是唯一的方法(除了选项(2)之外)无需额外的手工工作就能为你工作。
  4. 如果没有效果......考虑每年支付5,000美元(每位用户)并获得选项(5) - 使用IBM的编辑器。或者,更好的...雇用某人设计一个Eclipse插件,它将为您做到这一点。不应该花费超过一两周的时间来发展。

答案 1 :(得分:1)

um nether回答很有用。

进入WAS控制台并选择您的应用程序;例如:

企业应用程序> my_application_ear>类加载器并更改“类加载器顺序和WAR类加载器策略”

答案 2 :(得分:0)

在eclipse点击服务器>>中打开管理控制台您的服务器>>向下滚动并在服务器基础架构下>> java进程管理选择类加载器>>选择新的你可以在这里改变它