可执行jar中的RESTful Jersey应用程序错误

时间:2011-11-12 17:13:03

标签: java jersey executable-jar maven-assembly-plugin

我用maven jersey-quickstart-grizzly archetype(来自http://download.java.net/maven/2)开始制作一个简单的REST 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

我尝试用程序集 shade 插件制作jar,在任何一种情况下我都有同样的问题。

我搜索了很多,我发现很多人都有同样的问题,但仍然没有解决方案

1 个答案:

答案 0 :(得分:5)

您未正确合并META-INF / services / *文件。修复它,它会工作。

(您需要在合并两个或更多罐子时添加内容,而不是替换。实际问题是您的“com.sun.jersey.core.impl.provider.entity.StringProvider”行中没有META-INF / services / javax.ws.rs.ext.MessageBodyReader文件)。