Liberty 概要文件外部支持
Liberty 概要文件的外部函数和资源可以直接使用,而且在下一个发行版中可以依赖。当您应用服务或升级到未来发行版时,概要文件的内部或附带方面可能会改变。
概要文件中我可以直接使用哪些内容且可以在下一个发行版中依赖这些内容呢?
下列资源可以直接使用,而且在下一个发行版中仍可以使用:- ${wlp.install.dir}/dev 目录中的 JAR 文件内容定义的应用程序编程接口 (API) 和系统编程接口 (SPI)。
- 应用程序类装入器可以看见由服务器配置中的功能部件所提供的 API。产品扩展功能部件可以看见服务器配置中的功能部件所提供的所有 API 和 SPI。
- 针对 ${wlp.install.dir}/dev 目录中的 JAR 文件编译代码。在 ${wlp.install.dir}/dev 目录中提供 JAR 文件只是为了编译应用程序和功能部件,系统不支持将它们用于运行时。不要在应用程序、库或测试中使用这些 JAR 文件。
- 服务器配置,包括具有 public 或 protected 可视性的功能部件。可在 server.xml 文件和所包含文件中指定公共功能部件和配置元素;受保护功能部件可包括在您自己的功能部件中。
- ${wlp.install.dir}/bin 目录和子目录中的命令、脚本和归档。
- ${wlp.install.dir}/clients 目录和子目录中的客户机实用程序。
我应该避免依赖哪些内容?
不要构建对产品附带方面的依赖性,否则在应用服务或升级到未来发行版时会受到影响。您应该避免依赖的产品内部内容示例包括但不限于下列情况:
- 产品二进制 JAR 文件的名称,例如,${wlp.install.dir}/dev 目录中的那些 JAR 文件的名称。使用工具或 javac -extdirs 选项针对这些 JAR 文件来编译代码。请参阅 覆盖 Java SDK 中的类。
如果您要使用 Apache Ant 编译代码,请使用通配符以避免与特定 JAR 版本产生依赖关系;例如:
或者,可使用 featureManager classpath 命令来为一组特定功能生成类路径。<fileset dir="${wlp.install.dir}/dev/api/spec" includes="com.ibm.ws.javaee.servlet.3.0_*.jar"/>
- 直接使用 ${wlp.install.dir}/lib 目录中的产品二进制文件。可以直接调用的 JAR 文件仅位于 ${wlp.install.dir}/bin/tools 目录中。
- 由服务器在运行时输出的消息。消息的文本及插入会随服务和版本的升级而改变。只要实践上可能,产品将在特定操作点输出的消息标识方面保持一致,但这无法保证,因为底层实现可能会改变。
- 产品安装的布局,而不是 ${wlp.install.dir}/bin 和 ${wlp.install.dir}/dev 目录。
- ${wlp.install.dir}/templates 目录中的示例和模板文件。将服务应用到安装时可修改这些文件。
- 未显式提供为 API 的专用或第三方 Java™ 包。这些对于运行时的应用程序类装入器不可视。
- 不要对服务器输出的自动处理使用 console.log 文件。请改用 messages.log 文件访问和处理消息,这允许以易于处理的格式提供更多详细信息。
应用服务或升级时可修改那些内容?
应用服务或升级时可修改下列目录及其子目录的内容。不要自行修改下列位置中的文件,否则它们可能会为产品维护或升级所覆盖:
- ${wlp.install.dir}/bin
- ${wlp.install.dir}/clients
- ${wlp.install.dir}/dev
- ${wlp.install.dir}/java
- ${wlp.install.dir}/lib
- ${wlp.install.dir}/templates
下列目录的内容不会加以修改。这些是您的文件,应用服务或升级将不会修改这些文件:
- ${wlp.install.dir}/etc(您可能在此目录中添加了 server.env 或 jvm.options 文件)。
- ${wlp.install.dir}/usr(用户配置和应用程序的缺省位置)。
- 通过 WLP_USER_DIR 环境变量指定的任何非缺省目录。
${wlp.install.dir}/etc 内容不会加以修改的策略可能有例外。使用 Installation Manager 在 IBM® iSeries® 平台上安装 Liberty 概要文件时,会创建 ${wlp.install.dir}/etc/default.env 文件。在归档以及作业管理器安装期间,此文件也会由 iAdmin POSTINSTALL 命令创建或替换。iAdmin 命令位于 ${wlp.install.dir}/lib/native/os400/bin 目录中。请参阅iAdmin 命令。
第三方 API 可能随时间的推移而更改,但未考虑向后兼容性问题。这些是 Java 包,视为开放式源代码社区所开发功能部件实现的一部分,且作为 Liberty 概要文件的一部分来提供。第三方 API 在缺省情况下对于应用程序不可视;具有显式允许第三方访问的类装入器配置的 Java EE 应用程序将可以看见应用程序类装入器上的那些包,并且 OSGi 应用程序必须显式导入那些包。决定使用第三方 API 之前,请考虑不兼容更改的影响。