NetBeans Maven: ClassCastException - RestEasy vs Jersey



正如我的标题所说,我认为问题在于类加载,以及我的应用程序试图将一个新泽西核心类转换为restasy的事实。下面是触发它的代码,以及错误:

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。任何帮助或建议都是感激的。

我右键单击我的RouteTopComponent,查看运行时类路径,可以清楚地看到jersey-core在那里。我怎样才能摆脱它?

对于我来说,这是一个新手犯的愚蠢错误。我已经假设按F6在NetBeans(运行)将自动启动我的NetBeans平台应用程序(maven);然而,它并没有推出它应该推出的产品。它在NetBeans平台的新实例中启动了我的TopComponent(因此加载了所有Jersey类)。

我所要做的就是右键单击my-application-app并选择run,这样我的应用程序就会正确启动。

相关内容

  • 没有找到相关文章

最新更新