Glassfish 如何以编程方式创建jms主题和TopicConnectionFactory?
有人知道您是否可以通过编程方式创建主题及其连接工厂吗?目前,我使用glassfish管理实用程序创建主题及其连接工厂。如果我无法在代码中创建它,glassfish/openmq是否有默认主题以及我可以使用的conn factory?如果您只想避免在管理员中手动创建资源,只需使用文件“glassfish resources.xml”(GF 3.1,请参阅)部署它们即可 您需要这样的管理对象资源(用于主题): 注意:“mappedName”中的“java:app/”仅当您使用应用程序范围的资源时才正确。您可以在glassfish-resources.xml中的定义中保留“java:app/”。GF部署指南说:“应用程序范围的资源JNDI名称以java:app或 java:module。如果JNDI名称中未指定其中一个前缀,则会添加该前缀。“Glassfish 如何以编程方式创建jms主题和TopicConnectionFactory?,glassfish,jms,openmq,Glassfish,Jms,Openmq,有人知道您是否可以通过编程方式创建主题及其连接工厂吗?目前,我使用glassfish管理实用程序创建主题及其连接工厂。如果我无法在代码中创建它,glassfish/openmq是否有默认主题以及我可以使用的conn factory?如果您只想避免在管理员中手动创建资源,只需使用文件“glassfish resources.xml”(GF 3.1,请参阅)部署它们即可 您需要这样的管理对象资源(用于主题): 注意:“mappedName”中的“java:app/”仅当您使用应用程序范围的资源时才正
您还可以通过使用“name”而不是“mappedName”引入另一个间接级别。然后,您必须提供一个名为“application client.xml”的文件,其中(逻辑)名称映射到JNDI“物理”位置。谢谢!您是否知道我从何处获得将连接工厂资源添加到glassfish-resources.xml文件的语法?另外,我在安装目录中没有找到glassfish-resources.xml文件。在我弄清楚如何生成这个文件后,我将把它粘贴到哪里?是否有一个我可以修改或学习的预先存在的?
<admin-object-resource enabled="true" jndi-name="jms/myTopic"
object-type="user" res-adapter="jmsra" res-type="javax.jms.Topic">
<property name="Name" value="physicalTopic"/>
</admin-object-resource>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<admin-object-resource enabled="true" jndi-name="jms/myDestination" res-type="javax.jms.Topic" res-adapter="jmsra">
<property name="Name" value="PhysicalTopic"/>
</admin-object-resource>
<connector-connection-pool name="jms/myDestinationFactoryPool" connection-definition-name="javax.jms.TopicConnectionFactory" resource-adapter-name="jmsra"/>
<connector-resource enabled="true" jndi-name="jms/myDestinationFactory" pool-name="jms/myDestinationFactoryPool" />
</resources>
@MessageDriven(mappedName = "java:app/jms/myDestination", activationConfig =
{
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable"),
@ActivationConfigProperty(propertyName = "clientId", propertyValue = "NewMessageBean"),
@ActivationConfigProperty(propertyName = "subscriptionName", propertyValue = "NewMessageBean")
})
public class NewMessageBean implements MessageListener
{
[...]