JBoss Community

EJB - MDB - Oracle AQ - Deploy Exception - No property found for: destination

created by Mario Rossi in EJB3 - View the full discussion

We are using Jboss 5.1.0 and a Oracle 10g database.

 

 

<ejb-jar version="3.0" >

<enterprise-beans>

<message-driven>

 

<ejb-name>TriggerEventDispatcher</ejb-name>

<ejb-class>it.trs.vts.wpo.dispatcher.trigger.TriggerUpdate</ejb-class>

<transaction-type>Bean</transaction-type>

<messaging-type>javax.jms.MessageListener</messaging-type>

 

</message-driven>

</enterprise-beans>

<?xml version="1.0" encoding="UTF-8"?>

 

I created  an Oracle AQ on the db and I am trying to create a MessageDrivenBean so that some Oracle procedure can send message to the MDB.

 

When i deploy the EJB i see this exception:

 

org.jboss.deployers.spi.DeploymentException: Error for ActivationSpec class com.sun.genericra.inbound.ActivationSpec as JavaBean
        at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
        at org.jboss.resource.deployment.ActivationSpecFactory.createActivationSpec(ActivationSpecFactory.java:135)
        at org.jboss.resource.deployers.RARDeployment.createActivationSpec(RARDeployment.java:313)
        at org.jboss.resource.deployers.RARDeployment.internalInvoke(RARDeployment.java:276)
[...]

 

Caused by: java.beans.IntrospectionException: No property found for: destination on JavaBean: com.sun.genericra.inbound.ActivationSpec@c806d893{ConnectionFactoryClassName = oracle.jms.AQjmsConnectionFactory},{QueueConnectionFactoryClassName = oracle.jms.AQjmsQueueConnectionFactory},{TopicConnectionFactoryClassName = oracle.jms.AQjmsTopicConnectionFactory},{XAConnectionFactoryClassName = oracle.jms.AQjmsXAConnectionFactory},{XAQueueConnectionFactoryClassName = oracle.jms.AQjmsXAQueueConnectionFactory},{XATopicConnectionFactoryClassName = oracle.jms.AQjmsXATopicConnectionFactory},{QueueClassName = null},{TopicClassName = null},{UnifiedDestinationClassName = oracle.jms.AQjmsDestination},{ConnectionFactoryProperties = null},{JndiProperties = null},{ProviderIntegrationMode = oracle},{CommonSetterMethodName = null},{SupportsXA = false},{RedeliveryInterval = 0},{RedeliveryAttempts = 0},{ClientID = null},{MessageSelector = null},{SubscriptionDurability = Non-Durable},{ConnectionFactoryJNDIName = null},{SubscriptionName = null},{DestinationJNDIName = null},{DestinationType = javax.jms.Destination},{DeadMessageDestinationType = javax.jms.Destination},{MaxPoolSize = 8},{DestinationProperties = null},{DeadMessageDestinationJndiName = null},{DeadMessageConnectionFactoryJndiName = null},{DeadMessageConnectionFactoryProperties = null},{DeadMessageDestinationClassName = null},{DeadMessageDestinationProperties = null},{SendBadMessagesToDMD = false},{EndpointReleaseTimeOut = 180},{InstanceCount = 1},{LoadBalancingRequired = true},{Instance ID = 0},{CustomLoadBalancingMessageSelector = },{ShareClientID = false}
        at org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(PropertyEditors.java:354)
        at org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(PropertyEditors.java:285)
        at org.jboss.resource.deployment.ActivationSpecFactory.createActivationSpec(ActivationSpecFactory.java:129)
        ... 70 more

 

 

 

The messageDrivenBean is:

 

 

@MessageDriven(name = "TriggerUpdate", activationConfig = {
     @ActivationConfigProperty(propertyName="destinationType", propertyValue = "javax.jms.Queue"),
     @ActivationConfigProperty(propertyName="destination", propertyValue = "MY_QUEUE"),
     @ActivationConfigProperty(propertyName="connectionFactoryProperties", propertyValue="jdbc_connect_string=jdbc:oracle:thin:@192.168.13.104:1521:vtsdb,host=192.168.13.104,user=myuser,password=mypassword,port=1521,driver=oracle.jdbc.driver.OracleDriver"),
     @ActivationConfigProperty(propertyName="destinationProperties", propertyValue="owner=wpo,name=MY_QUEUE"),
     @ActivationConfigProperty(propertyName="user", propertyValue="myuser"),
     @ActivationConfigProperty(propertyName="password", propertyValue="mypassword"),
     @ActivationConfigProperty(propertyName="ConnectionFactoryClassName", propertyValue="oracle.jms.AQjmsConnectionFactory"),
     @ActivationConfigProperty(propertyName="QueueConnectionFactoryClassName", propertyValue="oracle.jms.AQjmsQueueConnectionFactory")
     })
@ResourceAdapter("oracleaq.rar")
@TransactionManagement(TransactionManagementType.BEAN)
public class TriggerUpdate  implements MessageListener {

   

 

 

public void onMessage(Message message) {
           System.out.println("Message Received");
}

}

 

 

The application is in a EAR.

The file oracleaq.rar is in the deploy folder of Jboss.

 

In the jboss.xml file inside the META-INF/ folder of the EJB jar i put:

 

 

<?xml version="1.0"?>
<jboss>
    <enterprise-beans>
        <message-driven>
            <ejb-name>TriggerEventDispatcher</ejb-name>
                   
          <invoker-bindings>
    <invoker>
    <invoker-proxy-binding-name>message-inflow-driven-bean</invoker-proxy-binding-name>
    </invoker>
    </invoker-bindings>
   
    <resource-adapter-name>oracleaq.rar</resource-adapter-name>

         </message-driven>
    </enterprise-beans>
</jboss>

 

 

In the ejb-jar.xml:#

 

 

 

 

 

</ejb-jar>

 

 

 

 

It seems to me that the setting of destination property is correct but probably I am wrong some configuration, because many of the properties in the log are null.

What can I look for ?

 

 

 

Reply to this message by going to Community

Start a new discussion in EJB3 at Community