Jade Dungeon

JBOSS 7

目录结构

  • bin: 启动和关闭 JBoss 的脚本。
  • client: 客户端与 JBoss 通信所需的 Java 库( JARs )。
  • docs: 配置的样本文件(数据库配置等)。
  • docs/dtd: 在 JBoss 中使用的各种 XML 文件的 DTD 。
  • lib: 一些 JAR , JBoss 启动时加载,且被所有 JBoss 配置共享。(不要把你的库 放在这里)
  • server: 各种 JBoss 配置。每个配置必须放在不同的子目录。子目录的名字表示配置 的名字。 JBoss 包含 3 个默认的配置: minimial , default 和 all 。
  • server/all: JBoss 的完全配置,启动所有服务,包括集群和 IIOP 。
  • server/default: JBoss 的默认配置。默认配置名称时使用。
  • server/default/conf: JBoss 的配置文件。
  • server/default/data: JBoss 的数据库文件。比如,嵌入的数据库,或者 JBossMQ
  • server/default/deploy: JBoss 的热部署目录。放到这里的任何文件或目录会被 JBoss 自动部署。 EJB 、 WAR 、 EAR ,甚至服务。
  • server/default/lib: 一些 JAR , JBoss 在启动特定配置时加载他们。 (default 和 minimial 配置也包含这个和下面两个目录。 )
  • server/default/log: JBoss 的日志文件。
  • server/default/tmp: JBoss 的临时文件。

启动与停止

启动:

$JBOSS_HOME/bin/run.sh

允许其他主机访问:

方法一:通过-b参数加上允许访问的IP,0.0.0.0表示所有IP

$JBOSS_HOME/bin/run.sh -b 0.0.0.0

也可以加到配置文件server.xml中一共有两处:

address=0.0.0.0

停止:

$JBOSS_HOME/bin/shutdown.sh -S

多个配置

$JBOSS_HOME/server下的每一个目录就是一个实例,新建一个实例可以以default为 样本复制一个:

cp $JBOSS_HOME/server/default $JBOSS_HOME/server/yourconf

比较重要的端口有两个:

  • HTTP服务的端口
  • JMX控制的端口,比如关闭服务器指令要通过这个端口

$JBOSS_HOME/server/yourconf/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml

<bean class="org.jboss.services.binding.ServiceBindingMetadata">
	<property name="serviceName">jboss.web:service=WebServer</property>
	<property name="bindingName">HttpConnector</property>
	<property name="port">8080</property>
	<property name="description">JBoss Web HTTP connector socket; also drives the values for the HTTPS and AJP sockets</property>
</bean>

<bean class="org.jboss.services.binding.ServiceBindingMetadata">
	<property name="serviceName">jboss.remoting:service=JMXConnectorServer,protocol=rmi</property>
	<property name="port">1090</property>
	<property name="description">RMI/JRMP socket for connecting to the JMX MBeanServer</property>
</bean>

启动:

$JBOSS_HOME/bin/run.sh -c yourconf

停止:

$JBOSS_HOME/bin/shutdown.sh -S -r 1090

用户配置

jmx-console

默认访问 http://localhost:8080/jmx-console不需要输入用户名和密码。

/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml加上 去掉<security-domain>java:/jaas/jmx-console</security-domain>的注释。

/server/default/deploy/jmx-console.war/WEB-INF/web.xml加上 去掉<security-constraint/>的注释。

/server/default/config/login-config.xml查找名字为jmx-consoleapplication-policy

jmx-console-users.properties的内容如:用户名=密码 jmx-console-roles.properties的内容如:用户名=角色。多个角色以,隔开。 该文件默认为admin用户定义了JBossAdmin和HttpInvoker这两个角色。

web-console

默认访问JBoss的web-console不需要输入用户名和密码。

server\deploy\default\management\console-mgr.sar\web-console.war\WEB-INF\jboss-web.xml 去掉<security-domain>java:/jaas/web-console</security-domain>的注释。

server\deploy\default\management\console-mgr.sar\web-console.war\WEB-INF\web.xml 去掉<security-constraint>部分的注释.

server/default/conf/login-config.xml文件中设置登录web-console的用户名和角色等 信息同目录的web-console-users.propertiesweb-console-roles.properties文件

server/default/conf/propsjmx-console-users.propertiesjmx-console-roles.properties拷贝到server/default/conf/下并更名为 web-console-users.propertiesweb-console-roles.properties

web-console-users.properties文件的内容:admin=admin web-console-roles.properties文件的内容:admin=JBossAdmin,HttpInvoker

jboss.error

Deployment "AttachmentStore" is in error due to: java.lang.IllegalArgumentException

此错误常在5.1版本中出现。

这个错误是配置文件profile.xml内的一个bug,文件路径为: $JBOSS_HOME/server/<serverName>/conf/bootstrap/profile.xml

把其中的节点:

<bean name="AttachmentStore" class="org.jboss.system.server.profileservice.repository.AbstractAttachmentStore">
	<constructor>
		<parameter>
			<inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" />
		</parameter>
	</constructor>
	...

修改为:

<bean name="AttachmentStore" class="org.jboss.system.server.profileservice.repository.AbstractAttachmentStore">
	<constructor>
		<parameter class="java.io.File">
			<inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" />
		</parameter>
	</constructor>
	...