2016-11-25 2 views
0

Основываясь на примере торгового коннектора из учебников JEE 7, я попытался создать свой собственный адаптер ресурсов. Он отлично работал со стеклянной рыбкой.Развертывание адаптера ресурсов на Wildfly WFLYJCA0046/IJ020066

Я пытаюсь развернуть мой .EAR в wildfly 10. Он не работает и бросает сообщение ниже. Я немного потерял, с чего начать искать, поскольку единственное упоминание кода ошибки в исходном коде самой дикой природы, и я бы не стал читать все коды Wildfly сейчас (но я нахожусь в нем).

Адаптер ресурсов является частью файла .ear, в этом файле уха. У меня есть проект ejb, являющийся клиентом этого RA, чтобы скомпилировать ejb. Я создаю ra-lib.jar вместе с rar, который содержит только записи из пакета api.

Структура .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 

Руководитель завода Подключение: сообщение

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

public class DummyRAConnectionFactoryImpl implements DummyRAConnectionFactory, Serializable, Referenceable { 

Ошибка:

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) 

Я не вижу никаких оснований, что ClassLoader, которые могут видеть ConnectionFactoryImpl также не может видеть интерфейс. Раньше у меня был интерфейс в другой банке (так что мне не нужно было создавать банку из rar для клиентов), и это дало ту же ошибку.

Я сохранил это короткое, поэтому, пожалуйста, спросите, когда чего-то не хватает, я быстро добавлю его.

ответ

0

Проблема в том, что мне нужны классы интерфейса в EJB, у которого есть клиент для этого RA. там, я не указывал .jar, который я создал из .rar как <scope>provided</scope>, поэтому в финальной .ear у меня были ra-api.jar и ra.rar, что BOTH содержал интерфейс .class.

Смежные вопросы