访问服务时,没有为响应类找到消息正文编写器

时间:2015-03-24 08:11:34

标签: java web-services jax-rs wso2is

我有一个jax-rs端点,如下所示。

@GET
@Path("/")
@Produces("application/json")
public OPLogin getLoginStatus(@Context HttpServletRequest request) throws URISyntaxException {
    OPLogin opLogin = new OPLogin();
    String commonAuthCookie = null;
    SessionContext sessionContext = null;
    if (FrameworkUtils.getAuthCookie(request) != null) {
        commonAuthCookie = FrameworkUtils.getAuthCookie(request).getValue();
    }
    if (commonAuthCookie != null) {
        sessionContext = FrameworkUtils.getSessionContextFromCache(commonAuthCookie);
    }
    if (sessionContext != null) {
        Map<String, AuthenticatedIdPData> authenticatedIDPMap = sessionContext.getAuthenticatedIdPs();
        if (authenticatedIDPMap.size() > 0) {
            Iterator it = authenticatedIDPMap.entrySet().iterator();
            while (it.hasNext()) {
                Map.Entry pair = (Map.Entry) it.next();
                System.out.println(pair.getKey() + " = " + pair.getValue());
                it.remove();
                AuthenticatedIdPData authenticatedIdPData = (AuthenticatedIdPData) pair.getValue();
                if (authenticatedIdPData.getIdpName().equals("LOCAL")) {
                    opLogin.setLoginStatus(true);
                    break;
                } else {
                    opLogin.setLoginStatus(false);
                }
            }
        }
    }
  return opLogin;
}

我有一个单独的OPLogin类,其属性为loginStatus。

此服务托管在wso2 IS中。当我通过浏览器访问此Web服务时,会出现以下错误。

没有为响应类OPLogin找到消息正文编写器。当我调试代码时,它不会抛出任何异常。它成功返回true。但它发布了这样一条消息。任何帮助都非常感谢。 的web.xml

   <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <display-name>OAuth2 Endpoints</display-name>

    <servlet>
        <servlet-name>OAuth2Endpoints</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
</servlet>

    <servlet-mapping>
        <servlet-name>OAuth2Endpoints</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>

感谢。

1 个答案:

答案 0 :(得分:0)

我认为问题出在您的Java到Json转换上。首先尝试从getLoginStatus方法返回一个硬的有线json字符串,看看是否有效,如果有效,那么你应该检查java到json的转换。

建议, *使OPLogin类成为POJO *检查您是否放置了适当的库