Community Edition 目录结构
在安装 Community Edition 之前,请确保满足系统要求并遵循 Get started with WebSphere Application Server Community Edition 中的下载和安装说明。在安装之后,将创建以下子目录:
- bin/:这个目录包含 server.jar、服务器启动脚本、deployer.jar、client.jar 和 IBM Cloudscape ij 工具脚本。通过使用这些文件,您可以分别启动服务器、运行部署工具、启动 J2EE 客户端,以及启动 Cloudscape ij 工具。
- config-store/:这个目录保存资源和应用程序模块,其中有一些是随 Community Edition 服务器一起启动的。它包含 index.properties 文件。该文件建立了系统模块或应用模块与其所在的 config-store 子目录的数字名称之间的映射关系。
- doc/:这个目录包含了最初的服务器所使用的缺省的服务器、Tomcat、数据库、 activemq、客户端、CORBA 以及其他系统模块的部署计划。
- graphics/:这个目录包含服务器欢迎页面和管理控制台使用的图形文件。
- lib/:这个目录包含了Geronimo内核的jar文件,用于提供内核服务以及加载其他服务、资源和应用程序模块。
- license/:这个目录包含 Community Edition 的许可和版权声明。
- repository/:这个目录包含许多应用程序模块使用的共享库,例如数据库驱动程序和 JMS 驱动程序。这些库在依赖它的模块加载时就会被加载。
- schema/:这个目录包含 XML 部署描述符和配置文件的模式定义。
- var/:这个目录包含日志文件、事务日志和安全性文件,以及服务器最近一次运行时所使用的配置信息。
- _uninstall/:这个目录包含卸载程序使用的信息。
启动 WebSphere Application Server Community Edition 服务器
启动选项
当启动服务器时,可以使用不同的选项来控制命令窗口中输出信息的数量:
-quiet
:此选项禁止显示进度栏。服务器将只输出 WARN 或更高级别的消息。-v
:服务器将只输出 INFO 或更高级别的消息。-vv
:服务器将只输出 DEBUG 或更高级别的消息。
有选择地启动配置
如果您遇到问题,并且需要隔离引发问题的部分,或者 Community Edition 没有启动,您可以通过修改正常启动的配置列表而不需要永久地更改它。要做到这一点,可以在服务器启动时将一个或多个配置作为参数传递给它以进行启动。例如,如果您有一个名为 hello
的应用程序模块出现了问题,您可以尝试只运行该模块及它所依赖的模块,以确保问题不是来自其他应用程序模块(清单 1)。
|
只有在配置已经正确声明其依赖的配置或者您已经确切地知道要启动哪些配置时,这种做法才能达到预期的效果。否则,模块可能意外地失败,因为没有启动所有必需的部分。例如,如果您的部署出现问题,则可能决定只运行 org/apache/geronimo/RuntimeDeployer
配置。即使配置启动成功,当您实际尝试部署时,部署也会失败,并告诉您必须运行服务器才能使用该命令。原因在于没有其他配置(例如 JMX 基础设施),并且没有这些配置的显式依赖项,所以 RuntimeDeployer 无法工作。因此,运行 RuntimeDeployer 所需要的全部配置并没有完全启动。建议您不要只运行服务器的一部分,因为这样可能导致更多的问题,它们会隐藏您试图查找的真正原因。
保持服务器不停止
如果让一个用户始终维持登录状态有困难,则在 Linux 上可以在后台运行 Community Edition。在 Windows 中,唯一的选择是锁定机器以保持当前用户的登录状态。
使用部署工具
Community Edition 部署工具可以帮助您使用各种命令来管理应用程序部署。要调用该部署工具,应该采用以下格式:
|
要获得关于每个命令的更详细信息,请输入:
|
但是,帮助信息不一定准确。例如,许多部署命令只能在服务器启动时运行,但是帮助文档指出它们在服务器停止时可以运行。如果有疑问,请参阅 Community Edition 文档。
常规选项
要获得常规选项的完整列表,请输入:
|
常规选项(用于任何命令)有:
- --uri:这是正在运行的服务器要联系的 URI。对于没有在本地主机的缺省端口 (1099) 上运行的服务器,您可以使用该 URI 来运行部署工具。该 URI 的格式为:
deployer:geronimo:jmx:rmi:///jndi/rmi://host:port/JMXConnector - --driver:您不仅可以在 Community Edition 上使用部署工具,也可以在任何遵循 JSR-88 的服务器上使用部署工具。对于非 Community Edition 的服务器,您需要提供包含 JSR-88 部署实现类的 jar 文件的位置。
- --user:这是身份验证时使用的用户名。如果没有提供用户名,则会提示您输入一个用户名。Community Edition 的缺省用户名是“system”。
- -- password:这是身份验证时使用的密码。如果没有提供密码,则 Community Edition 会尝试不用密码进行连接。如果连接失败,则会提示您输入一个密码。Community Edition 对于“system”用户名的缺省密码是“manager”。
- --syserr:如果为 True,则会将错误记录到 syserr 设备中。缺省值为 False。
- --verbose:如果为 True,则会将调试信息输出到标准输出。缺省值为 False。
可用的部署命令及其用法
常见命令有:
deploy
:deploy
命令通常带有一个模块和一个指定如何部署该模块的计划。它验证该模块和计划,将该模块安装到服务器上并启动该模块。如果该模块非常简单并且您愿意接受所有缺省值,则可能不需要拥有计划。而且,除了将计划作为独立的参数提供外,还可以将其作为模块本身的一部分。如果将计划作为模块的一部分进行打包,则其位置取决于模块的类型:模块类型 计划位置 Web 模块 WEB-INF/geronimo-web.xml EJB 模块 META-INF/openejb-jar.xml 资源适配器 META-INF/geronimo-ra.xml 客户端应用程序 META-INF/geronimo-application-client.xml J2EE 应用程序 META-INF/geronimo-application.xml deploy
命令也有一个附加选项,可用于处理多部署目标的情况。因为现在对多目标的支持还非常有限,所以我们在这里不介绍这些附加选项。redeploy
:redeploy
命令等同于先运行undeploy
,然后再运行deploy
。该模块将在重新部署后启动,即使它以前是停止的。在进行重新部署时,应用程序的一些部分可能对客户端可用而对其他部分不可用,从而导致请求失败。start
:start
命令用于启动已经部署完毕的模块。您可以列出多个模块 ID 来将它们一起启动。stop
:stop
命令用于停止已经部署完毕的模块。您可以列出多个模块 ID 来将它们一起停止。在停止之后,就不能访问模块,直到它再次启动为止。undeploy
:undeploy
命令用于停止模块并从服务器删除其所有部署信息。它将无法再访问,直到再次部署为止。与deploy
与redeploy
不同的是,您可以指定取消部署多个模块。
其他命令有:
distribute
:distribute
命令与 deploy 类似。区别在于它也使模块可用,但没有启动它(这一点与 deploy 不同)。这意味着您在服务器没有启动时可以使用distribute
。list-modules
:使用list-modules
命令,您可以查看所有可用的模块。对于 Web 模块,您可以使用list-modules
命令来查找其 Web 地址 (URL)。您可以指定--started
或--stopped
来只查看处于相应状态的模块。要使用此命令,服务器必须正在运行。list-targets
:list-targets
命令列出您可以部署模块的位置。每个目标都是一个集群或一个服务器,并代表一个配置存储。然而,对多个配置存储的支持并没有得到充分测试。目前还不支持将集群作为目标,所以此命令没有用。要使用此命令,服务器必须正在运行。
脱机部署工具
即使服务器没有运行,部署工具也能够正常工作,但是可以进行的操作有限。您只能分配应用程序,这意味着 Community Edition 将验证它是否是合法的应用程序并安装它。当服务器没有运行时,无法使用其他命令(除了这里没有讨论的 package
命令外)。
了解 config-store 目录
config-store 目录(在 wasce_install_root\config-store 目录中)保存资源和应用程序模块,其中一些将随 Community Edition 服务器一起启动。wasce_install_root\config-store\index.properties 中列出了可用的配置模块,它提供模块配置名称及其所在的数字 config-store 子目录之间的映射关系。在 J2EE 应用程序部署成功之后,您将在 config-store/assigned number 目录中看到其配置的序列化版本。
通过查看 index.properties 文件,您可以在 J2EE 应用程序已经部署时查找服务器指定的数字目录名称。例如,如果您部署了 Community Edition 提供的 Hello 示例程序,则将看到该 Hello 程序的指定数字 ID:
|
这意味着该 Hello 程序的配置的序列化版本在 config-store/44 目录中。第一行指出最后一次写入 index.properties 文件的日期和时间。还有一个 index.backup 文件,它包含服务器的 index.properties 文件的备份版本。config-store 目录的内容是由部署工具自动维护的,所以建议系统管理员不要修改此目录。
了解 config.list 文件
config.list 文件(在 wasce_install_root\var\config 目录中)包含服务器上一次关闭时正在运行的资源和应用程序模块。如果启动服务器时没有使用特殊的指令,则服务器将读取 config.list 来确定它应该启动哪些资源和应用程序模块。如果您没有做任何更改,则将在 config.list 文件中看到以下的缺省启动序列(从上到下分行排列)。
配置 ID | 初始缺省计划 | 用法 |
---|---|---|
org/apache/geronimo/System | system-plan.xml | 包含操作 Community Edition 需要的基本服务。应该始终启动。 |
org/apache/geronimo/RMINaming | naming-server-plan.xml | 包含 RMI Naming 服务器配置。 |
org/apache/geronimo/Server | j2ee-server-plan.xml | 包含 Community Edition 要作为 J2EE 服务器所需要的服务。 |
org/apache/geronimo/Security | j2ee-security-plan.xml | 包含服务器的安全配置。如果您要查找安全方面的示例以用于自己的应用程序,请参见 j2ee-secure-plan.xml 文件。 |
org/apache/geronimo/SystemDatabase | system-database-plan.xml | 启动嵌入式 IBM Cloudscape 数据库服务器,它在缺省情况下侦听端口 1527。 |
org/apache/geronimo/SystemJMS | system-jms-plan.xml | 启动 JMS 连接工厂和缺省连接队列。 |
org/apache/geronimo/RuntimeDeployer | j2ee-runtime-deployer-plan.xml | 包含服务器的部署配置。 |
org/apache/geronimo/TomcatRuntimeDeployer | j2ee-tomcat-runtime-deployer-plan.xml | 包含 Tomcat Web 模块构建程序配置。 |
org/apache/geronimo/applications/Welcome/Tomcat | welcome-tomcat-plan.xml | 启动 Community Edition 欢迎页面。 |
org/apache/geronimo/Console/Tomcat | webconsole-tomcat-plan.xml | 启动 Community Edition 管理控制台(技术预览)。 |
您可以使用下列部署命令来查看哪些模块已经启动:
|
deploy list-modules 命令的输出
|
您可能会觉得奇怪,因为没有看到 config.list 文件中列出 org/apache/geronimo/Tomcat 和 org/apache/geronimo/ActiveMQServer,但它们实际上已经启动了。 org/apache/geronimo/applications/Welcome/Tomcat 和 org/apache/geronimo/Console/Tomcat 的 parentId 是 org/apache/geronimo/Tomcat。因此,根据 Community Edition 的依赖注入部署体系结构,org/apache/geronimo/Tomcat 将在欢迎页面和控制台页面启动之前启动。org/apache/geronimo/ActiveMQServer 服务器的情况与此相同,它将在 org/apache/geronimo/SystemJMS 启动之前启动。
使用 config.xml 来配置服务器属性
如果您要更改不同服务器(如 Tomcat、RMI、Cloudscape 服务器)的端口和主机名,或者要配置自己的 CORBA 属性,则可以更改 Community Edition 提供的初始配置。Config.xml(在 wasce_install_root\var\config 目录中)用于存储系统管理员自己的自定义配置。您可以自定义 config.xml 中的所有服务器配置,既可以修改该 config.xml 中随 Community Edition 一起提供的缺省配置(RMINaming、RuntimeDeployer、Tomcat、Server、Security、ServerCorba 和 ActiveMQServer GBeans),也可以添加自己的配置。当服务器下一次启动时,它会从 config.xml 文件读取配置,并将其应用到配置存储中。配置更改不会写回到位于 wasce_install_root\doc\plan 目录的初始配置文件中,这些文件要保持原样。不管您要做什么,都别忘了首先备份服务器!有关更多信息,请参阅从系统故障中恢复。
下面的示例显示如何将 Tomcat 服务器 Web 容器的运行端口号从缺省的 8080 更改为 80。
config.xml 中的 Tomcat WebConnector 配置
|
保存 config.xml 文件并重启服务器。您必须重启服务器才能使更改生效,因为服务器只在服务器初始化时才读取 config.xml。您也可以根据需要更改其他属性值。但是,更改配置名称或 GBean 名称的做法并不推荐。您可能注意到,在同一个目录中还有一个名为 config.tomcat.xml 的文件。此文件包含以 Tomcat 为 Web 容器的服务器运行时所使用的示例配置设置,它在服务器启动时没有使用。如果您已经更改了配置,并且想返回到缺省的 Tomcat 设置,则可以复制此文件来覆盖现有的 config.xml 文件。
日志记录和系统恢复
当您遇到问题时,请首先检查 wasce_install_root/var/logs 中的日志文件。有关日志及每个日志包含的内容的更多信息,请参阅 Get started with WebSphere Application Server Community Edition。
每个日志都有一个相应的 -log4j.properties 文件,它指出日志文件所在位置、向日志文件中写入多少详细信息,以及它是的什么格式等。其中您可能最关心的一行是 log4j.appender.FILE.threshold=
。通过将其设置为 ERROR
、WARN
、INFO
或 DEBUG
,您可以控制向日志中写入什么。
从系统故障中恢复
Community Edition 并没有一个系统来管理配置更改。如果出现失误,或者配置被破坏,则很难恢复。最好的做法是定期备份 Community Edition 配置目录。
- 当您想对 Community Edition 所处的状态进行备份时,请确保服务器已停止。
- 复制 config-store 和 var/config 目录。为了方便起见,您可以将这些目录存储在一个 zip 文件中。
- 当您需要使服务器返回到期望的状态时,请确保服务器已停止。
- 恢复 config-store 和 var/config 目录的做法是,首先删除现有的目录,然后将旧的目录解压缩或复制到其位置上。
- 启动服务器。现在,服务器启动配置应该处于您备份时的状态了。对存储库或日志记录属性所做的更改可能还会影响服务器的整个状态。
既然您已经掌握了要进行系统管理需要了解的信息,那现在就可以成功地管理您的 Community Edition 服务器了。
(责任编辑:城尘)