2011-06-02 62 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·

相關問題