Java RESTEasy找不到MessageBodyWriter-已配置
我最近在Tomcat7上设置了RESTEasy。我们不使用Maven。我很早就提到了这一点,因为我找到的所有问题的答案都建议添加对pom.xml的引用。到目前为止,添加对我的项目的引用并没有解决我的问题,但是,也许我遗漏了一些东西 现在,我只是尝试重新创建我在网上看到的现成示例,在这里我应该能够正确地注释POJO,并使用RESTEasy将其作为JSON返回,假设我的构建配置正确。我的构建引用:Java RESTEasy找不到MessageBodyWriter-已配置,java,json,jackson,tomcat7,resteasy,Java,Json,Jackson,Tomcat7,Resteasy,我最近在Tomcat7上设置了RESTEasy。我们不使用Maven。我很早就提到了这一点,因为我找到的所有问题的答案都建议添加对pom.xml的引用。到目前为止,添加对我的项目的引用并没有解决我的问题,但是,也许我遗漏了一些东西 现在,我只是尝试重新创建我在网上看到的现成示例,在这里我应该能够正确地注释POJO,并使用RESTEasy将其作为JSON返回,假设我的构建配置正确。我的构建引用: - jackson.core.asl - jackson.jaxrs - jackson.map
- jackson.core.asl
- jackson.jaxrs
- jackson.mapper.asl
和所有需要的易拉罐。事实上,如果我返回一个响应(如我在这里找到的示例所示),我就可以从GET成功地获得我想要的JSON。当然,这根本不是通过RESTEasy使用Jackson
然而,每当我尝试返回任何类型的对象时,我都会得到:
找不到类型为的响应对象的MessageBodyWriter:。。。应用程序/json
我不确定我做错了什么,因为我能找到的所有答案都表明,我需要做的是确保杰克逊被正确引用——据我所知,确实如此。下面是my web.xml的相关部分
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>rest_services.RootRestService</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/services</param-value>
</context-param>
编辑:
下面是我添加到类路径中的类和一些其他类
:
非常感谢您的帮助。我一直无法让杰克逊工作,但我改为抛弃,一切正常。目前,这对我来说已经足够了。在使用JAXB时,您可能还需要感谢您的建议,但这不是问题所在。您能列出应用程序类路径中的所有JAR吗?
@GET
@Path("/getTables")
@Produces(MediaType.APPLICATION_JSON)
public List<MyTable> getTables() {
...
}
@XmlRootElement
public final class MyTable {
...
}