我有一个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>
感谢。
答案 0 :(得分:0)
我认为问题出在您的Java到Json转换上。首先尝试从getLoginStatus方法返回一个硬的有线json字符串,看看是否有效,如果有效,那么你应该检查java到json的转换。
建议, *使OPLogin类成为POJO *检查您是否放置了适当的库