ERROR org.apache.wink.server.internal.handlers.FlushResultHandler - The system could not find a javax.ws.rs.ext.MessageBodyWriter or a DataSourceProvider class for the org.json.JSONArray type and application/xml mediaType.  Ensure that a javax.ws.rs.ext.MessageBodyWriter exists in the JAX-RS application for the type and media type specified.
这个是我的部门代码:
@GET
@Produces({MediaType.APPLICATION_JSON})
public JSONArray getTasks() {
JSONArray result = new JSONArray();
Collection<Task> tasks = TaskManager.getInstance().getTasks();
for (Task task : tasks) {
try {
result.put(createJSONObject(task));
} catch (JSONException e) {
e.printStackTrace();
throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
}
}
return result;
}这个是我的web。xml配置:
<servlet>
<servlet-name>restService</servlet-name>
<servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class> <init-param>
<param-name>applicationConfigLocation</param-name>
<param-value>/WEB-INF/resources</param-value>
</init-param> <init-param>
<param-name>propertiesLocation</param-name>
<param-value>/WEB-INF/tasks.properties</param-value>
</init-param> </servlet> <servlet-mapping>
<servlet-name>restService</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>以下是我用到的jar包:activation-1.1.jar
commons-lang-2.3.jar
jaxb-api-2.2.jar
jaxb-impl-2.2.1.1.jar
jersey-json-1.0.3.jar
json-20100208.jar
jsr311-api-1.1.1.jar
slf4j-api-1.6.1.jar
slf4j-simple-1.6.1.jar
stax-api-1.0-2.jar
wink-1.2.0-incubating.jar
wink-client-1.2.0-incubating.jar
wink-common-1.2.0-incubating.jar
wink-server-1.2.0-incubating.jar帮忙解决以下弄了好久 硬是没弄出来。。一直以为是json包的问题换了n个还是报这个错误

解决方案 »

  1.   

    哎,我最近也碰上这个问题了,好像wink 对json的支持并不好,还需要自己进行处理。
      

  2.   

    我发现这点上来说  wink 真没有 jersey好用,   jersey处理json 根本不自己去考虑,直接就用了。  搞的我最近都想自己把这两者结合起来,自己重新写一个框架了。
      

  3.   

    对了,我放弃了wink  还是改回jersey
      

  4.   


    我现在都改用springMVC了,wink对json支持不够好