2011-06-02 46 views
5

我在使用RESTEasy提供的客户端框架调用RESTful webservice时遇到了一些问题。当我尝试注册ResteasyProviderFactory时,我得到了一个ClassCastException,没有更多的工作。Glassfish中的ResteasyProviderFactory异常

下面的代码:

RegisterBuiltin.register(ResteasyProviderFactory.getInstance()); 
    LifeGoalClient leClient = ProxyFactory.create(LifeGoalClient.class, "http://localhost:8080/TutorFinanceiro"); 
    List<LifeGoal> lifeGoals = leClient.getLifeGoals(); 
    JOptionPane.showMessageDialog(null, lifeGoals); 
    return lifeGoals; 

和异常:

java.lang.ClassCastException: com.sun.jersey.server.impl.provider.RuntimeDelegateImpl cannot be cast to org.jboss.resteasy.spi.ResteasyProviderFactory 

我使用Glassfish的3.0.1和2.2.1 RestEasy的。

我通过网络搜索,但发现没有解决方案或没有相关的信息就此。 如果有人有解决方案或其他方式做到这一点,请帮助我!

在此先感谢

+0

我走了很多关于研究之和我没有发现任何东西没用,只是解决办法,这并不工作也是如此。我认为在这种情况下切换泽西岛RestEasy是更好的选择。 – irobson 2011-12-01 12:15:34

回答

1

这是由冲突的jax-rs实现 - 球衣和resteasy引起的。 为了避免上述错误,您可以在web.xml中添加

<context-param> 
    <param-name>resteasy.use.deployment.sensitive.factory</param-name> 
    <param-value>false</param-value> 
</context-param> 

通过这样做,resteasy将选择ResteasyProviderFactory的实例。

4

我通过在META-INF/services目录下的类路径中添加一个名为javax.ws.rs.ext.RuntimeDelegate的文件来强制glassfish中的泽西岛的活动,它只包含以下行: org.jboss .resteasy.spi.ResteasyProviderFactory

但是,对我来说,似乎所有工作都很好,直到我尝试使用resteasy-cdi。将最后一个工件添加到我的依赖关系中,并配置所需的上下文参数,发现了同样的classcast问题。

0

在我的情况下上述的context-param解决方案帮我解决了以下问题:

应用战争是Windows下的Linux(SUSE,Debian的)运行良好,但试图在Tomcat中6部署我以下错误:

UIN 15,2014上午十点16分20秒org.apache.catalina.core.StandardContext listenerStart

格雷夫斯:异常的LOR DE L'envoi DE L'évènementcontexte初始化(上下文初始化) àl'instance de classe d'écoute(listener) org.jboss.resteasy.plugins.server.servlet.Resteasy Bootstrap java.lang.ClassCastException:org.glassfish.jersey.server.internal.RuntimeDelegateImpl无法在org.jboss.resteasy.spi.ResteasyProviderFactory.getInstance(ResteasyProviderFactory.java: 330) 在org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:63) ....

中庸之道众所周知的异常之前:

朱安15,2014 10:16: 20 AM org.apache.catalina.core.StandardContext listenerStart

严重:例外情况l'envoi de l'évè nement contexteinitialisé(context initialized)àl'instance de classe d'écoute(listener) org.jboss.resteasy.plugins.cache.server。ServletServerCache 了java.lang.RuntimeException:RestEasy的不intialized,找不到ResteasyProviderFactory属性 ......

的的context-param中的conf/web.xml中解决了这个错误(但我没有听清楚为什么Linux和Windows之间的差异,因为我们从来没有添加此Linux下)

感谢

大卫·M·