1
如OpenEJB的文檔描述,我們可以配置JMS連接工廠和隊列,它們將出現在JNDI爲: OpenEJB的:資源/ MyJmsConnectionFactory, OpenEJB的:資源/ myQueue中OpenEJB的:配置MDB的自定義連接工廠
鑑於這些JNDI條目,我如何告訴MDB使用它們?
是否有可能改變JNDI名稱,例如連接工廠出現如Java:/ ConnectionFactory的 或連接工廠
如OpenEJB的文檔描述,我們可以配置JMS連接工廠和隊列,它們將出現在JNDI爲: OpenEJB的:資源/ MyJmsConnectionFactory, OpenEJB的:資源/ myQueue中OpenEJB的:配置MDB的自定義連接工廠
鑑於這些JNDI條目,我如何告訴MDB使用它們?
是否有可能改變JNDI名稱,例如連接工廠出現如Java:/ ConnectionFactory的 或連接工廠
守得雲開不同於你可能想象。指定一個MDB被綁定到的javax.jms.Queue和隊列的名稱是EJB規範的一部分,並通過ActivationConfig完成的,就像這樣:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(
propertyName = "destinationType",
propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(
propertyName = "destination",
propertyValue = "FooQueue")})
public static class JmsBean implements MessageListener {
public void onMessage(Message message) {
}
}
MDB容器本身並不實際JMS-一點都不知道。它只是理解它應該將bean綁定到特定的資源適配器。
<openejb>
<Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
ServerUrl tcp://someHostName:61616
</Resource>
<Container id="MyJmsMdbContainer" ctype="MESSAGE">
ResourceAdapter MyJmsResourceAdapter
</Container>
</openejb>
上面示出了一個MDB容器掛接到經由ActiveMQ的使用JMS資源適配器。
這裏是顯示了一個MDB容器迷上了一個Quartz Resource Adapter
這是不可能告訴MDB容器有關JMS具體的事情按照規範的例子,關係遠不止通用。這blog post給出了一些有關事情如何工作的見解。
謝謝,真的很有幫助! – 2011-06-01 14:48:07