java - 可执行 jar 中的 RESTfull Jersey 应用程序错误

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

我从 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/

相关文章:

java - Jar 可以双击运行,但不能在命令行中运行

java - 将 .txt 文件转换为字符串的二维数组列表

java - 如何按顺序运行2个.java类? ( Selenium 与 Eclipse)

java - NoClassDefError com.sun.jersey.api.client.Client

java - Jaxb + Jersey 。跳过生成的 json 中的空字段

java - java如何在Mac OS上检查“jar launcher.app”正在使用的版本

java - 尝试使用Hadoop运行mapReduce jar文件

java - JPEG 编码 - DHT 段问题 -> 信息字节

java - 以 Json 形式对 <T> 进行通用响应

java - 在 SLSB 和 JAX-WS 中指定 JAXB 包