Glassfish 如何以编程方式创建jms主题和TopicConnectionFactory?

Glassfish 如何以编程方式创建jms主题和TopicConnectionFactory?,glassfish,jms,openmq,Glassfish,Jms,Openmq,有人知道您是否可以通过编程方式创建主题及其连接工厂吗?目前,我使用glassfish管理实用程序创建主题及其连接工厂。如果我无法在代码中创建它,glassfish/openmq是否有默认主题以及我可以使用的conn factory?如果您只想避免在管理员中手动创建资源,只需使用文件“glassfish resources.xml”(GF 3.1,请参阅)部署它们即可 您需要这样的管理对象资源(用于主题): 注意:“mappedName”中的“java:app/”仅当您使用应用程序范围的资源时才正

有人知道您是否可以通过编程方式创建主题及其连接工厂吗?目前,我使用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名称中未指定其中一个前缀,则会添加该前缀。“


您还可以通过使用“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
{ 
[...]