Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从Spring映射获取字符串响应_Java_Spring_Spring Mvc - Fatal编程技术网

Java 无法从Spring映射获取字符串响应

Java 无法从Spring映射获取字符串响应,java,spring,spring-mvc,Java,Spring,Spring Mvc,我一直在做一个基于Spring的web项目。大多数端点都被设置为返回XML,并且使用REST封送器可以很好地工作。作为项目演示的一部分,我希望有一个仪表板,以更人性化的可读格式显示数据 问题是,我无法让端点返回字符串。当我尝试访问端点时,会收到以下错误消息: JBWEB000065: HTTP Status 406 - JBWEB000309: type JBWEB000067: Status report JBWEB000068: message JBWEB000069: descrip

我一直在做一个基于Spring的web项目。大多数端点都被设置为返回XML,并且使用REST封送器可以很好地工作。作为项目演示的一部分,我希望有一个仪表板,以更人性化的可读格式显示数据

问题是,我无法让端点返回字符串。当我尝试访问端点时,会收到以下错误消息:

JBWEB000065: HTTP Status 406 -

JBWEB000309: type JBWEB000067: Status report

JBWEB000068: message

JBWEB000069: description JBWEB000126: The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request 'Accept' headers. 
映射请求代码如下所示:

@RequestMapping(value="/dash", method=RequestMethod.GET, headers="Accept=*/*",produces="text/plain")
@ResponseBody
public String customerPortal()
{
  return "WEB-INF/jsp/Dash.jsp";
}
其他(XML)端点工作正常,文件本身也存在。在这一点上,我愿意接受任何将HTML传输到浏览器的方式,我不需要任何花哨的东西,只需要一个不会违反AJAX单源限制的文件。很抱歉,如果有一个简单的解决方案,我已经尝试了六种不同的解决方案,但找不到任何方法让服务器发送XML以外的任何内容

编辑:删除@ResponseBody、方法、标题和生成注释后,它现在给出以下响应:

JBWEB000065: HTTP Status 500 - Could not resolve view with name '/WEB-INF/jsp/ScorpioDash.jsp' in servlet with name 'scorpio-restservice'

JBWEB000309: type JBWEB000066: Exception report

JBWEB000068: message Could not resolve view with name '/WEB-INF/jsp/ScorpioDash.jsp' in servlet with name 'scorpio-restservice'

JBWEB000069: description JBWEB000145: The server encountered an internal error that prevented it from fulfilling this request.

JBWEB000070: exception

javax.servlet.ServletException: Could not resolve view with name '/WEB-INF/jsp/ScorpioDash.jsp' in servlet with name 'scorpio-restservice'
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1190)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

终于找到了答案。在scorpio-restservice-servlet.xml文件(抱歉,我没有发布)中,我没有定义InternalResourceViewResolver。添加以下内容:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/WEB-INF/static/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

/WEB-INF/静态/
.jsp

修复了该问题,并使其能够完美地呈现.jsp文件。非常感谢您的帮助。

您向
/dash
发送请求的
Accept
标题是什么?此方法返回Spring必须前进的视图的名称。所以它返回的不是响应体。所以它不应该用ResponseBody注释。另外,您很可能没有返回正确的字符串以转发到视图(取决于您如何设置视图解析器)。老实说,我不知道accept头是什么。如果有帮助的话,我正在尝试从浏览器访问它。至于反应体,我实际上是在寻找任何一种反应。在某种程度上,我想让servlet返回浏览器可以显示的任何内容。它不需要漂亮,我只需要让它工作。从
@Requestmapping
中删除
标题
,您就可以关注上面提到的其他潜在问题。这只有在您删除
@ResponseBody
注释后才有效。在你的回答中添加这一点很重要。正确,这就是为什么我问预期结果是什么。获取要呈现的JSP与查看文件内容完全不同。您还应该在解析器上设置前缀,以避免在控制器中执行完整的
WEB-INF/JSP
路径。