2016-11-25 4 views
0

Basé sur l'exemple de Trading Connector des tutoriels JEE 7, j'ai essayé de créer mon propre adaptateur de ressources. Cela a bien fonctionné avec glassfish.Déploiement de l'adaptateur de ressources sur Wildfly WFLYJCA0046/IJ020066

J'essaye de déployer mon .EAR à un wildfly 10. Cela ne fonctionne pas, et jette le message ci-dessous. Je suis un peu perdu sur l'endroit où commencer à chercher, car la seule mention du code d'erreur est dans le code source de wildfly lui-même et je préfère ne pas lire tout le code Wildfly maintenant (mais je suis à elle). L'adaptateur de ressources fait partie d'un fichier .ear, dans ce fichier ear j'ai un projet ejb qui est client de cette RA, pour que l'ejb compile, je crée un ra-lib.jar avec le rar contient seulement les entrées du paquet api.

Structure du .rar:

./META-INF 
./META-INF/maven 
./META-INF/maven/root.project 
./META-INF/maven/root.project/ra 
./META-INF/maven/root.project/ra/pom.xml 
./META-INF/maven/root.project/ra/pom.properties 
./META-INF/MANIFEST.MF 
./root 
./root/project 
./root/project/ra 
./root/project/ra/api 
./root/project/ra/api/DummyRAConnectionFactory.class 
./root/project/ra/api/DummyRAConnection.class 
./root/project/projects 
./root/project/projects/dummy 
./root/project/projects/dummy/ra 
./root/project/projects/dummy/ra/connection 
./root/project/projects/dummy/ra/connection/DummyRAConnectionFactoryImpl.class 
./root/project/projects/dummy/ra/connection/DummyRAManagedConnection.class 
./root/project/projects/dummy/ra/connection/DummyRAManagedConnectionFactory.class 
./root/project/projects/dummy/ra/connection/DummyRAConnectionImpl.class 
./root/project/projects/dummy/ra/connection/DummyRAManagedConnection$1.class 
./root/project/projects/dummy/ra/DummyImplementationRAConnector.class 

Chef de l'usine de connexion:

import java.io.Serializable; 
import javax.resource.Referenceable; 
import root.project.ra.api.DummyRAConnectionFactory; 

public class DummyRAConnectionFactoryImpl implements DummyRAConnectionFactory, Serializable, Referenceable { 

Message d'erreur:

08:30:21,440 ERROR [org.jboss.msc.service.fail] (ResourceAdapterDeploymentService Thread Pool -- 1) MSC000001: Failed to start service jboss.raactivator.java_comp_env_eis_DummyRAConnectionFactory: org.jboss.msc.service.StartException in service jboss.raactivator.java_comp_env_eis_DummyRAConnectionFactory: WFLYJCA0046: Failed to start RA deployment [java_comp_env_eis_DummyRAConnectionFactory] 
     at org.jboss.as.connector.services.resourceadapters.deployment.AbstractResourceAdapterDeploymentService$2.run(AbstractResourceAdapterDeploymentService.java:325) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
     at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
    Caused by: org.jboss.jca.deployers.common.DeployException: IJ020066: Connection factory implementation (root.project.projects.dummy.ra.connection.DummyRAConnectionFactoryImpl) doesn't implement connection factory interface (root.project.ra.api.DummyRAConnectionFactory) 
     at org.jboss.jca.deployers.common.AbstractResourceAdapterDeployer.createObjectsAndInjectValue(AbstractResourceAdapterDeployer.java:1348) 
     at org.jboss.as.connector.services.resourceadapters.ResourceAdapterActivatorService$ResourceAdapterActivator.doDeploy(ResourceAdapterActivatorService.java:171) 
     at org.jboss.as.connector.services.resourceadapters.ResourceAdapterActivatorService.start(ResourceAdapterActivatorService.java:115) 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 

Je ne vois aucune raison pour qu'un ClassLoader qui peut voir ConnectionFactoryImpl ne peut pas également voir l'interface. J'ai eu l'interface dans un autre pot plus tôt (de sorte que je n'ai pas besoin de produire un pot à partir du rar pour les clients) et cela a donné la même erreur.

J'ai gardé ce court, alors s'il vous plaît demander quand quelque chose manque, je vais l'ajouter rapidement.

Répondre

0

Le problème était que j'avais besoin des classes Interface dans l'EJB qui a un client pour cette RA. là, je n'ai pas précisé le .jar que j'ai créé du .rar en tant que <scope>provided</scope> ainsi dans le dernier .ear j'avais le ra-api.jar et le ra.rar qui BOTH ont contenu l'interface .class.