Problema deploy RA (Resource Adapter)

1 resposta
R

Olá pessoal,

Estou implementando um RA juntamente com um MDB no meu projeto de TCC e tive um problema ao efetuar o deploy da aplicação. Já implementei uma outra vez utilizando a mesma arquitetura que estou usando agora e não estou obtendo sucesso.
Uma exception ocorre falando que não encontra uma property no ActivationSpec, mas não estou usando-a. A única property que uso é o interval, mas ele não encontra. Os 30000 ms que aparecem está fixo no código. Não é os 60000 que deveria ser setado. Fiz isso como teste mesmo. O stack trace:

10:36:47,552 WARN  [ServiceController] Problem starting service jboss.j2ee:ear=wjsdl-mdb-ra-ear.ear,jar=wjsdl-mdb.jar,name=TestCaseGeneratorMDB,service=EJB3
org.jboss.deployment.DeploymentException: Error for ActivationSpec class br.edu.fai.wjsdl.ra.spec.WjsdlActivationSpec as JavaBean; - nested throwable: (java.beans.IntrospectionException: No property found for: destination on JavaBean: br.edu.fai.wjsdl.ra.spec.WjsdlActivationSpec with interval 30000)
	at org.jboss.deployment.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:53)
	at org.jboss.resource.deployment.ActivationSpecFactory.createActivationSpec(ActivationSpecFactory.java:135)
	at org.jboss.resource.deployment.RARDeployment.createActivationSpec(RARDeployment.java:254)
	at org.jboss.resource.deployment.RARDeployment.internalInvoke(RARDeployment.java:218)
	at org.jboss.system.ServiceDynamicMBeanSupport.invoke(ServiceDynamicMBeanSupport.java:156)
	at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.ejb3.JmxClientKernelAbstraction.invoke(JmxClientKernelAbstraction.java:44)
	at org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory.createActivationSpec(JBossMessageEndpointFactory.java:285)
	at org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory.start(JBossMessageEndpointFactory.java:189)
	at org.jboss.ejb3.mdb.MessagingContainer.startProxies(MessagingContainer.java:190)
	at org.jboss.ejb3.mdb.MessagingContainer.start(MessagingContainer.java:156)
	at org.jboss.ejb3.mdb.MDB.start(MDB.java:126)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:103)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
	at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
	at $Proxy0.start(Unknown Source)
	at org.jboss.system.ServiceController.start(ServiceController.java:417)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy269.start(Unknown Source)
	at org.jboss.ejb3.JmxKernelAbstraction.install(JmxKernelAbstraction.java:120)
	at org.jboss.ejb3.Ejb3Deployment.registerEJBContainer(Ejb3Deployment.java:301)
	at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:362)
	at org.jboss.ejb3.Ejb3Module.startService(Ejb3Module.java:91)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
	at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
	at $Proxy0.start(Unknown Source)
	at org.jboss.system.ServiceController.start(ServiceController.java:417)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy33.start(Unknown Source)
	at org.jboss.ejb3.EJB3Deployer.start(EJB3Deployer.java:512)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
	at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
	at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87)
	at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
	at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy34.start(Unknown Source)
	at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
	at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
	at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy9.deploy(Unknown Source)
	at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
	at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
Caused by: java.beans.IntrospectionException: No property found for: destination on JavaBean: br.edu.fai.wjsdl.ra.spec.WjsdlActivationSpec with interval 30000
	at org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(PropertyEditors.java:350)
	at org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(PropertyEditors.java:281)
	at org.jboss.resource.deployment.ActivationSpecFactory.createActivationSpec(ActivationSpecFactory.java:129)
	... 108 more

O mdb está em um ear e os arquivos jboss.xml e ejb-jar.xml seguem:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
   <enterprise-beans>

      <message-driven>
         <ejb-name>TestCaseGeneratorMDB</ejb-name>
         <ejb-class>br.edu.fai.wjsdl.mdb.TestCaseGeneratorMDB</ejb-class>
         <messaging-type>br.edu.fai.wjsdl.ra.listener.WjsdlRAMessageListener</messaging-type>
         <transaction-type>Container</transaction-type>
         <activation-config>
            <activation-config-property>
               <activation-config-property-name>interval</activation-config-property-name>
               <activation-config-property-value>60000</activation-config-property-value>
            </activation-config-property>
        </activation-config>
      </message-driven>

   </enterprise-beans>

   <assembly-descriptor>

      <container-transaction>
         <method>
            <ejb-name>TestCaseGeneratorMDB</ejb-name>
            <method-name>*</method-name>
         </method>
         <trans-attribute>Required</trans-attribute>
      </container-transaction>

   </assembly-descriptor>

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

<jboss>
   <enterprise-beans>
      <message-driven>
         <ejb-name>TestCaseGeneratorMDB</ejb-name>
         <destination-jndi-name>dummy</destination-jndi-name>
         <resource-adapter-name>wjsdl-ra.rar</resource-adapter-name>
      </message-driven>
   </enterprise-beans>
</jboss>

O arquivo ra.xml do RA:

<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://java.sun.com/xml/ns/j2ee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
           http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
           version="1.5">

   <description>Web-JSDl Resource Adapter - a RA to generate test cases.</description>
   <display-name>Web-JSDl Resource Adapter</display-name>
   <vendor-name>Web-JSDL group</vendor-name>
   <eis-type></eis-type>
   <resourceadapter-version>1.0</resourceadapter-version>

   <resourceadapter>
      <resourceadapter-class>br.edu.fai.wjsdl.ra.WjsdlResourceAdapter</resourceadapter-class>

      <inbound-resourceadapter>
         <messageadapter>        
            <messagelistener>
               <messagelistener-type>br.edu.fai.wjsdl.ra.listener.WjsdlRAMessageListener</messagelistener-type>
               <activationspec>
                  <activationspec-class>br.edu.fai.wjsdl.ra.spec.WjsdlActivationSpec</activationspec-class>
                  <required-config-property>
                      <config-property-name>interval</config-property-name>
                  </required-config-property>
               </activationspec>
            </messagelistener>
         </messageadapter>
      </inbound-resourceadapter>

   </resourceadapter>
</connector>

1 Resposta

R

Descobri qual era o problema! A versão do EJB que estava utilizando EJB 3, voltei para 2.1 e deu certo. Provavelmente algum recurso que tentei utilizar do EJB 3 que não estava corretamente implementado já que implementei baseado no 2.1. Apenas corrigi o arquivo ejb-jar.xml para:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_2_1.xsd">
   <enterprise-beans>

      <message-driven>
         <ejb-name>TestCaseGeneratorMDB</ejb-name>
         <ejb-class>br.edu.fai.wjsdl.mdb.TestCaseGeneratorMDB</ejb-class>
         <messaging-type>br.edu.fai.wjsdl.ra.listener.WjsdlRAMessageListener</messaging-type>
         <transaction-type>Container</transaction-type>
         <activation-config>
            <activation-config-property>
               <activation-config-property-name>interval</activation-config-property-name>
               <activation-config-property-value>60000</activation-config-property-value>
            </activation-config-property>
        </activation-config>
      </message-driven>

   </enterprise-beans>

   <assembly-descriptor>

      <container-transaction>
         <method>
            <ejb-name>TestCaseGeneratorMDB</ejb-name>
            <method-name>*</method-name>
         </method>
         <trans-attribute>Required</trans-attribute>
      </container-transaction>

   </assembly-descriptor>

</ejb-jar>

Flw

Criado 10 de setembro de 2009
Ultima resposta 14 de set. de 2009
Respostas 1
Participantes 1