在开发JAX-RS(Jersey)应用程序时,我使用@XmlRootElement
和@XmlElement
来启用XML Media类型作为响应主体。
例外:
21-Jan-2019 12:29:28.601 SEVERE [http-nio-8080-exec-4] org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo MessageBodyWriter not found for media type=text/plain, type=class org.mypack.model.Message, genericType=class org.mypack.model.Message.
有什么提示吗?
答案 0 :(得分:-1)
解决方案
我听说很多人有这个问题/问题,所以我认为我发现的解决方案会更好地共享,我什至会详细解释一下:
我正在考虑的这个问题实际上有两个不同的观点:
将我们变成 没关系 ,无论您使用的是Java编译器/ jdk 8还是11,在两种情况下都可以使用,并且已经使用jdk8或jdk11 (您只需要考虑,默认情况下 jaxb (package javax.xml.bind.annotation
)已从jdk11中删除,因此您将其手动添加为依赖项/ jar )。真正重要的是,您为 Web容器提供的Java版本。
如果(例如) Tomcat 将在jdk11上运行,即使将JAXB放在类路径上并且不考虑用于构建项目的Java版本,JAXB也将无法运行。 另一方面,如果要提供jdk8作为服务器的平台 (IntelliJ中的“编辑/调试配置”),那么JAXB可以不考虑您用来构建项目的Java (对于jdk11,您将添加一个依赖项/ jar,对于jdk8,它会在 rt.jar 中提供)。
。