0

JEE 7 チュートリアルの Trading Connector の例に基づいて、独自のリソース アダプタを作成してみました。グラスフィッシュでうまくいきました。

.EAR を wildfly 10 にデプロイしようとしています。うまくいかず、以下のメッセージが表示されます。エラーコードの唯一の言及はwildfly自体のソースコードにあり、すべてのWildflyコードを今は読みたくないので、どこから始めればよいか迷っています(しかし、私はそれを読んでいます)。

リソース アダプタは .ear ファイルの一部です。その ear ファイルには、この RA のクライアントである ejb プロジェクトがあります。ejb をコンパイルするために、エントリのみを含む rar と一緒に ra-lib.jar を作成します。 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)

ConnectionFactoryImpl を参照できる ClassLoader がインターフェイスも参照できない理由はわかりません。以前に別の jar にインターフェイスを持っていたので (クライアント用に rar から jar を生成する必要がないように)、同じエラーが発生しました。

私はこれを短くしたので、何かが欠けているときは尋ねてください.すぐに追加します.

4

1 に答える 1

0

問題は、この RA へのクライアントを持つ EJB に Interface クラスが必要だったことです。そこでは、.rar から作成した .jar を指定しなかった<scope>provided</scope>ため、最終的な .ear には がra-api.jarあり、ra.rarその両方に Interface が含まれていました.class

于 2016-11-25T07:58:58.860 に答える