2011-11-12 49 views
2

我做了一個簡單的REST Jersey應用程序,從maven jersey-quickstart-grizzly原型開始(從http://download.java.net/maven/2開始)。
可執行文件夾中的RESTfull Jersey應用程序錯誤

它工作正常,如果我用maven命令(mvn compile exec:java)運行它;但是,如果我做了一個可執行的JAR它返回以下錯誤:

11-nov-2011 10.58.33 com.sun.jersey.spi.container.ContainerResponse logException 

GRAVE: Mapped exception to response: 500 (Internal Server Error) 
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A mess 
age body writer for Java class java.lang.String, and Java type class java.lang.S 
tring, and MIME media type text/plain was not found 

我嘗試做出的罐子裝配遮陽插件,並在任何情況下,我有同樣的問題。

我GOOGLE了很多,我發現很多人都有同樣的問題,但仍然沒有解決

+0

我有Jetty服務器 – flyer

回答

5

您沒有正確合併META-INF /服務/ *文件。修復它,它會工作。

(當你合併兩個或多個罐子時,你需要添加內容,而不是替換。實際問題是你沒有「com.sun.jersey.core.impl.provider.entity.StringProvider」這一行你的META-INF/services/javax.ws.rs.ext.MessageBodyReader文件)。

+0

haahaa完全相同的問題,我一直期待進入了錯誤的文件,該文件是* javax.ws.rs.ext.MessageBodyWriter *和*不* javax.ws.rs.ext.MessageBodyReader(在這個文件中有「com.sun.jersey.core.impl.provider.entity.StringProvider」)。但是爲什麼maven不包含這個字符串? –

+0

好吧,你正在重新包裝一些,所以你經常需要做一點「額外」。 Assembly插件(據我所知)默認情況下只是解包和*替換*定義的罐子集中找到的文件..陰影插件應該更好,請參閱發佈評論JERSEY-440 http://java.net/jira/browse/ JERSEY-440(你可能省略了一些配置)。 –

+0

我使用* jersey-bundle *替換* jersey-client *並且* assembly * *使用不同的trasformer參數(與示例中一樣),但結果是相同的(可能我不明白我所做的每件事情) –

相關問題