要在 JBoss Enterprise Application Platform(EAP)上部署 Identity Applications,需要执行几个手动安装步骤。
安装 JBoss EAP。
按照使用引导式过程安装 Identity Applications或部分 33.3, 以无提示模式安装 Identity Applications中所述安装 Identity Applications。
创建包含以下内容的新 messaging-jboss-beans.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!--
========================================================================
Copyright (c) 2014 NetIQ Corporation. All Rights Reserved.
THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND TREATIES
NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED COPIED, DISTRIBUTED,
REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, EXPANDED, COLLECTED,
COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN
CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND CIVIL
LIABILITY.
========================================================================
-->
<!--
Messaging beans
$Id: messaging-jboss-beans.xml 88672 2009-05-11 20:49:47Z anil.saldhana@jboss.com $
-->
<deployment xmlns="urn:jboss:bean-deployer:2.0">
<!-- messaging application-policy definition -->
<application-policy xmlns="urn:jboss:security-beans:1.0" name="messaging">
<authentication>
<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
<module-option name="unauthenticatedIdentity">guest</module-option>
<module-option name="dsJndiName">java:/IDMUADataSource</module-option>
<module-option name="principalsQuery">SELECT PASSWD FROM JBM_USER WHERE USER_ID=?</module-option>
<module-option name="rolesQuery">SELECT ROLE_ID, 'Roles' FROM JBM_ROLE WHERE USER_ID=?</module-option>
</login-module>
</authentication>
</application-policy>
<bean name="SecurityStore" class="org.jboss.jms.server.jbosssx.JBossASSecurityMetadataStore">
<!-- default security configuration -->
<property name="defaultSecurityConfig">
<![CDATA[
<security>
<role name="guest" read="true" write="true" create="true"/>
</security>
]]>
</property>
<property name="suckerPassword">changeit</property>
<property name="securityDomain">messaging</property>
<property name="securityManagement"><inject bean="JNDIBasedSecurityManagement"/></property>
<!-- @JMX annotation to export the management view of this bean -->
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.messaging:service=SecurityStore",exposedInterface=org.jboss.jms.server.jbosssx.JBossASSecurityMetadataStoreMBean.class)</annotation>
<!-- Password Annotation to inject the password from the common password utility
<annotation>@org.jboss.security.integration.password.Password(securityDomain="messaging",methodName="setSuckerPassword")</annotation>
-->
</bean>
<bean name="MessagingDeploymentTemplateInfoFactory"
class="org.jboss.managed.plugins.factory.DeploymentTemplateInfoFactory"/>
<bean name="QueueTemplate" class="org.jboss.profileservice.management.templates.JmsDestinationTemplate">
<property name="info"><inject bean="QueueTemplateInfo"/></property>
</bean>
<bean name="QueueTemplateInfo"
class="org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo">
<constructor factoryMethod="createTemplateInfo">
<factory bean="DSDeploymentTemplateInfoFactory"/>
<parameter class="java.lang.Class">org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo</parameter>
<parameter class="java.lang.Class">org.jboss.jms.server.destination.QueueServiceMO</parameter>
<parameter class="java.lang.String">QueueTemplate</parameter>
<parameter class="java.lang.String">A template for JMS queue *-service.xml deployments</parameter>
</constructor>
<property name="destinationType">QueueTemplate</property>
</bean>
<bean name="TopicTemplate" class="org.jboss.profileservice.management.templates.JmsDestinationTemplate">
<property name="info"><inject bean="TopicTemplateInfo"/></property>
</bean>
<bean name="TopicTemplateInfo"
class="org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo">
<constructor factoryMethod="createTemplateInfo">
<factory bean="DSDeploymentTemplateInfoFactory"/>
<parameter class="java.lang.Class">org.jboss.profileservice.management.templates.JmsDestinationTemplateInfo</parameter>
<parameter class="java.lang.Class">org.jboss.jms.server.destination.TopicServiceMO</parameter>
<parameter class="java.lang.String">TopicTemplate</parameter>
<parameter class="java.lang.String">A template for JMS topic *-service.xml deployments</parameter>
</constructor>
<property name="destinationType">TopicTemplate</property>
</bean>
</deployment>
将 IDMProv/deploy/messaging 文件夹中的现有 messaging-jboss-beans.xml 文件替换为您在步骤 3 中创建的文件。
找到 JBoss 的持久性服务配置文件。例如,对于 PostgreSQL 数据库,该文件为 novell\\jboss\docs\examples\jms 目录中的 postgresql-persistence-service.xml。
将现有的持久性服务配置文件替换为数据库示例文件夹中的文件。例如,对于 PostgreSQL,请替换为 %jboss-root%/docs/examples/jms/postgresql-persistence-service.xml 文件。
将新的持久性服务配置文件的副本添加到 %jboss-root%/server/IDMProv/deploy/messaging/ 目录中。
打开持久性服务配置文件,然后完成以下步骤:
将文本 DefaultDS 替换为文本 IDMUADataSource。
在 Clustered 属性中,注释掉以下行:
<attribute name="Clustered">false</attribute>
<!-- All the remaining properties only have to be specified if the post
office is clustered.
You can safely comment them out if your post office is non clustered
-->
<!-- The JGroups group name that the post office will use -->
<!--attribute
name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>-->
<!-- Max time to wait for state to arrive when the post office joins the
cluster -->
<!--attribute name="StateTimeout">30000</attribute>-->
<!-- Max time to wait for a synchronous call to node members using the
MessageDispatcher -->
<!--attribute name="CastTimeout">30000</attribute>-->
<!-- Set this to true if you want failover of connections to occur when a
node is shut down -->
<!--<attribute name="FailoverOnNodeLeave">false</attribute>
<depends
optional-attribute-name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</depends>
<attribute name="ControlChannelName">jbm-control</attribute>
<attribute name="DataChannelName">jbm-data</attribute>
<attribute
name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>-->
</mbean>
将以下行替换为指定的文本:
|
将此文本 |
替换为此文本 |
|---|---|
|
POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample') |
POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('p_user', 'changeit', 'IDMNotificationDurableTopic') |
|
POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest') |
POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('p_user','guest') |
|
POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john') |
POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','p_user') |
|
POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john') |
POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','p_user') |
保存并关闭持久性服务配置文件。
启动 JBoss。
(视情况而定)如果无法在 Windows 服务器上启动 JBoss,请执行解决方案 310273:“System properties cannot be set via run.bat script in EAP 5.2”(在 EAP 5.2 中无法通过 run.bat 脚本设置系统属性)中指定的解决方法。
发生此问题时,server.log 文件将记录 AbstractKernelController 的异常错误。有关详细信息,请参见 JBoss 社区论坛中有关 JBPAAP-10938 和 JBPAAP-9581 的讨论。
完成以下步骤,将 JBoss 管理员帐户添加到 stop-jboss.sh 脚本:
打开 stop-jboss.sh 脚本。
在 shutdown.sh 命令的末尾,追加 JBoss 管理员的用户帐户和口令。使用以下语法:
shutdown.sh -s jnp://localhost:1199 -u %user_account% -p %password%
例如:
shutdown.sh -s jnp://localhost:1199 -u admin -p novell
保存并关闭脚本。
(可选)为确认配置正确,请确保服务器日志包含以下信息:
INFO [ServerPeer] JBoss Messaging 1.4.7.GA server [0] started INFO [TopicService] Topic[/topic/IDMNotificationDurableTopic] started, fullSize=200000, pageSize=2000, downCacheSize=2000
INFO [RBPM] [com.novell.soa.notification.impl.jms.JMSConnectionMediator:init] Starting JMS notification system INFO [STDOUT] INFO [RBPM] [com.novell.soa.notification.impl.NotificationThread:run] Starting asynchronous notification system