2013-04-08 49 views
0

正如我的标题所说,我认为问题在于类加载问题,以及我的应用程序试图将泽西岛核心类重新安置的事实。下面是触发它的代码,以及错误:NetBeans Maven:ClassCastException - RestEasy vs Jersey

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平台模块(行家)对下列依赖性:

<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被甚至远程想看看球衣核时,我似乎不具有任何参考它。任何帮助或建议表示赞赏。

我右键单击我的RouteTopComponent并查看运行时类路径,并可以在其中清楚地看到泽西核心。我如何摆脱它?

回答

0

在我的情况下,这是一个新手愚蠢的错误。我假定在NetBeans中按F6(要运行)会自动启动我的NetBeans平台应用程序(mavenized);然而,它并没有启动应有的功能。它在NetBeans平台的一个新实例中启动我的TopComponent(因此所有Jersey类都加载了)。

我只需要右键单击我的应用程序应用程序,然后选择运行它以正确启动我的应用程序。

也许这对任何一个和我一样假设并试图直接运行文件的人都是有用的。