我从 maven jersey-quickstart-grizzly 原型(prototype)(来自 http://download.java.net/maven/2 )开始制作了一个简单的 REST Jersey 应用程序。
如果我使用 maven 命令运行它(mvncompileexec: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
我尝试使用程序集和阴影插件制作jar,无论哪种情况我都有同样的问题。
我在谷歌上搜索了很多,发现很多人都有同样的问题,但仍然没有解决方案
最佳答案
您没有正确合并 META-INF/services/* 文件。解决这个问题就可以了。
(合并两个或多个 jar 时需要添加内容,而不是替换。实际问题是您的文件中没有“com.sun.jersey.core.impl.provider.entity.StringProvider”行META-INF/services/javax.ws.rs.ext.MessageBodyReader 文件)。
关于java - 可执行 jar 中的 RESTfull Jersey 应用程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106084/