级别: 初级 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 中,使所有静态类的更新也会被监测。
参考资料
关于作者
对本文的评价
|