IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

最佳实践: WebSphere Application Server 的 classpath 结构

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

WebSphere 最佳实践团队 (WebSphere_Best_Practices@us.ibm.com),

2001 年 11 月 01 日

WebSphere Application Server 静态的系统 classpath 是为一些稳定的便于应用程序服务器经常使用的包而设置的。Application Server 首先搜索静态的系统 classpath,接着搜索动态的 classpath。其中动态 classpath 有两种不同的类型 -? Web 应用classpath 和节点相关的 classpath ,动态 classpath 中设置的是可以更改的包。所以那些稳定的不经常更改的类放在静态 classpath 中,而经常发生更改的类应该放在动态 classpath 中。

对象: 架构设计师,开发者,管理员

产品: WebSphere Application Server

版本: 3.5

平台: 所有平台

关键字: 动态 classpath,系统classpath,classpath,节点,应用程序服务器启动

摘要

WebSphere Application Server 静态的系统 classpath 是为一些稳定的便于应用程序服务器经常使用的包而设置的。Application Server 首先搜索静态的系统 classpath,接着搜索动态的 classpath。其中动态 classpath 有两种不同的类型 -? Web 应用classpath 和节点相关的 classpath ,动态 classpath 中设置的是可以更改的包。所以那些稳定的不经常更改的类放在静态 classpath 中,而经常发生更改的类应该放在动态 classpath 中。

建议

在 IBM WebSphere Application Server环境中,对于每个应用服务器都有一个相应的静态classpath。对于应用服务器中包含的所有Enterprise Bean、servlet 和 JSP 文件,这个 classpath 是可见的。在应用程序服务器启动之后,对这个classpath 所做的任何更改只有在该服务器重新启动后才生效。所以,应该将以下类型的类放在这种classpath 中:从 servlet 引用的类(该 servlet 的对象被添加到会话中);公共类;调用 Java本地接口(JNI)方法的类;和 EJB 客户机 JAR 文件。上述所提到的所有类类型都有一个共同的特征:不经常更改。如果要更改这些类中的任何一个,则必须停止应用程序服务器,然后重新启动,以反映那些更改。

动态 classpath 由节点 classpath 和 Web 应用 classpath 组成。对于应用程序服务器中包含的所有企业bean、servlet 和 JSP 文件,节点 classpath 是可见的。它的作用是当应用程序服务器正在运行时,定位 EJB JAR 中的类及其相关的类。在运行期间,检查节点 classpath,以定位 Enterprisebean 的所有帮助器类,这些类不包含在 EJB JAR文件中。在 EJB 部署过程中,节点 classpath也用于同样的目的。

此外,重要的是,节点中的所有应用程序服务器都使用该 classpath。所以,对于同一节点上的不同应用程序服务器,节点 classpath中不应该包含任何需要不同实现的公共类名。这种公共类应该放在应用程序服务器的静态 classpath 中。当应用程序服务器正在运行时,如果这些类发生更改,就不会被重新装入。不过,在应用程序服务器正在运行时,部署 EJB JAR 可以将新 JAR 文件或目录添加到节点 classpath 中。所以 EJB 相关类,或由 EJB在其接口中引用的类,才是真正应该放在节点 classpath 中的。

动态 classpath 的第二个组件是Web 应用 classpath。是对于 Web 应用中的所有 servlet 和 JSP文件可见的。该 classpath 是受监控的,每当自动检测到有新的更改时,就会重新装入所有组件(类或JAR 文件)。且所有 classpath 中的组件必须在该应用程序的服务器上。Web 应用 classpath 有以下内容:servlet 类或JAR 文件的目录;含有一些 servlet JAR 文件中没包括的希望被重新装入的帮助器类的 JAR 文件目录;以及带有 Access Bean 类或 JAR 文件的目录,该 Access Bean 类是 servlet 为了执行 Enterprise bean 而调用的。一旦在该 classpath的任何目录中检测到有新的 JAR 文件加入,就会自动装入该文件。

WebSphere classpath 汇总表




系统 classpath 附加信息

静态 classpath 由三个元素组成:

  • 系统(应用程序)classpath。
  • 在节点上安装的JDBC 驱动程序列表。
  • 由管理服务器进程形成的 classpath。


如何设置应用程序服务器的系统 classpath:

1. 在 Application Server 的控制中心,选择 Topology View,并单击应用程序服务器名称。
2. 选择 General栏,然后选择命令行参数,并输入 classpath 标识符“-classpath”后面跟 classpath 项。
3. 单击 Apply按钮以保存该 classpath。

动态 classpath

附加信息

节点 classpath 应用于相同节点上的所有应用程序服务器。它的用途是为节点上的任何服务器需要相同的类包(例如第三方应用程序)时而设的。 如何设置节点 classpath:

1. 在服务器的控制中心, 进入 Topology View栏,然后选择节点名。
2. 在 General栏的 Dependent classpath:字段中输入 classpath 信息。


Web 应用 classpath 的作用局限在单一 Web应用程序内的 servlet 和 JSP。可以对不同 Web 应用程序单独进行修改。

要设置 Web 应用 classpath:

1. 在服务器的控制中心,进入 Topology View,然后选择应用程序服务器名。
2. 展开该服务器。
3. 展开 Servlet Engine。
4. 按名称选择 Web 应用程序,然后在 General栏中验证您正在使用的 Web 应用程序。
5. 选择 Advanced栏,然后检查 Document Root字段。它应该包含到该 Web 应用程序的 HTML 和 JSP的路径。classpath 字段应该包含 Servlet 和 Class/Jar 文件所在的目录。

在进行更改之后,单击 Apply按钮以保存它们。

应被取代的方法



可以将所有的类或 JAR 文件放在静态应用程序 classpath 中,当更改一个类时不需要再经历重新装入任何类的过程。同样,可以将所有类放在一个动态classpath 中,使所有静态类的更新也会被监测。

参考资料



关于作者

由“WebSphere 最佳实践团队”创作了这一最佳实践经验。关于更多信息、问题或意见,可通过 WebSphere_Best_Practices@us.ibm.com与该团队联系。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款