私のタイトルが示すように、問題はクラスローディングにあり、アプリケーションがジャージコア クラスを resteasy にキャストしようとしているという事実にあると思います。以下は、それをトリガーするコードとエラーです。
java.lang.LinkageError: ClassCastException: attempting to castjar:file:/C:/Program%20Files/NetBeans%207.3/enterprise/modules/ext/rest/jersey-core-1.13.jar!/javax/ws/rs/ext/RuntimeDelegate.classtojar:file:/C:/Documents%20and%20Settings/hwng/My%20Documents/NetBeansProjects/pics-client/branding/target/netbeans_clusters/pics_client/modules/ext/org.jboss.resteasy/jaxrs-api-2.3.5.Final.jar!/javax/ws/rs/ext/RuntimeDelegate.class
at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:126)
at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:96)
コード:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
IRoutesService client = ProxyFactory.create(IRoutesService.class,
"http://localhost:8080/rest/routeservice/");
client.postRoute(txtRouteName.getText());
}
現在、私の NetBeans プラットフォーム モジュール (maven) は次のものに依存しています。
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.3.5.Final</version>
</dependency>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>myapp-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
myapp-api は、サーバー上にもある jar であり、サービスと対話するために使用されます。myapp-api の POM には、次の依存関係があります。
<dependencies>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
</dependencies>
全体として、NetBeans が jersey-core への参照を何も持っていないように見えるのに、なぜリモートで jersey-core を見ようとしているのか、私にはわかりません。ヘルプやアドバイスをいただければ幸いです。
RouteTopComponent を右クリックしてランタイム クラスパスを確認すると、そこに jersey-core がはっきりと表示されます。どうすればそれを取り除くことができますか?