2011-12-07 3 views
9

トピックとその接続ファクトリを問題にすることができますか?現在、私はglassfish管理ユーティリティを使ってトピックとその接続ファクトリを作成しています。コードで作成できない場合、glassfish/openmqにデフォルトのトピックがあり、connファクトリを使用できますか?プログラムでjms TopicとTopicConnectionFactoryを作成するにはどうすればよいですか?

答えて

15

adminでリソースを手動で作成したくない場合は、単にglassfish-resources.xmlファイル(GF 3.1、http://docs.oracle.com/cd/E18930_01/html/821-2417/giyhh.htmlを参照)を使用してリソースを展開するだけです。

あなたは(トピックについて)このような管理オブジェクトリソースを必要とする次の場合:

​​

は、あなたが(「physicalTopic」ここで)トピックごとに異なる「名前」の値を使用しなければならないことに注意してくださいメッセージが混同しないようにする複数のトピックを実装します。

さらに、タイプjavax.jms.TopicConnectionFactoryのconnector-connection-poolを参照するconnector-resourceが必要です。

配備記述子を使用してリソースを動的に作成することを目的としない場合は、glassfish-resources.xmlが最良の方法です。

アプリケーションスコープされているリソースはそのように展開されていることに注意してください:http://docs.oracle.com/cd/E18930_01/html/821-2417/giydj.html

"のglassfish-resources.xmlでは" GF 3.xのためのファイルである、GF 2.xのためにそれは「太陽-resources.xmlのでした"このファイルは、NetBeansを使用している場合は、プロジェクトビューの "Server Resources"フォルダにあります。注意:「サーバーリソース」内のglassfish-resources.xmlは、NetBeansを使用してデプロイする場合にのみNetBeansで使用されます。 NetBeansは、これらのリソースを作成する方法を知っており、このタスクを実行します。あなたのEJBモジュールやWEBの

  • META-INF: - 本番環境のための可能性が非常に高いようです - あなたは、NetBeansのないをGlassFishのために直接EARを展開場合は、中のglassfish-resources.xmlのを提供する必要があなたのWARのモジュールスコープのリソースの
  • エンタープライズアプリケーションのMETA-INFアプリケーション幅のリソース NetBeansでは、ファイルをプロジェクトビューの "Configuration Files"フォルダ(src/conf /ファイルシステム内で)。

NetBeansの[New Message-Driven Bean]ウィザードを使用すると、簡単にこのリソース定義を作成できます([新規...]を選択してMBeanを追加するだけです)。ウィザードで[Project Destinations]> [Add]を選択します。完全な3.1の例では、次のようになります。

@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 
{ 
[...] 

注意

<?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> 

これはMBeanの注釈である "Javaの:アプリ/" に​​mappedNameでは、アプリケーションスコープのリソースを使用する場合にのみ正しいです。 glassfish-resources.xmlの定義に "java:app /"を入れておくことができます。 GF配備ガイドには、「アプリケーションスコープのリソースJNDI名は、java:appまたは java:moduleで始まります。これらのプレフィックスの1つがJNDI名に指定されていない場合は、追加されます。

「mappedName」ではなく「name」を使用して、別のレベルの間接参照を導入することもできます。次に、(論理)名がJNDIの "物理的な"場所にマップされる "application-client.xml"という名前のファイルを提供する必要があります。

+0

ありがとうございます! glassfish-resources.xmlファイルに接続ファクトリリソースを追加するための構文をどこで知ることができますか?また、インストールディレクトリにglassfish-resources.xmlファイルが見つかりませんでした。どのように私はそれを生成する方法を把握した後、私はこのファイルを貼り付けますか?私が修正したり、おそらく学ぶことができる既存のものがありますか? – simgineer

関連する問題