【发布时间】:2014-07-05 10:53:23
【问题描述】:
好的,首先是代码(超级简单):
@Controller
@RequestMapping("/")
public class HelloController {
private final static Logger logger = Logger.getLogger(HelloController.class);
@RequestMapping(method = RequestMethod.GET)
public String printWelcome(ModelMap model) {
logger.info("ELO ELO");
model.addAttribute("message", "Hello world!");
RestTemplate restTemplate = new RestTemplate();
String url = "http://192.168.0.200:8000/GPIO/11/function/in";
//String url = "http://192.168.0.200:8000/GPIO/11/function";
//restTemplate.getForObject(url, String.class);
String test = "";
restTemplate.postForObject(url, null, String.class);
logger.info(test);
return "hello";
}
下一个我不是疯子的例子是邮递员的回应(chrome):
最后是完整的错误日志:
输入异常报告
消息请求处理失败;嵌套异常是 java.lang.IllegalArgumentException: "None" 不包含 '/'
描述服务器遇到阻止它的内部错误 完成此请求。
异常
org.springframework.web.util.NestedServletException: 请求 处理失败;嵌套异常是 java.lang.IllegalArgumentException:“无”不包含“/” org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:927) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) javax.servlet.http.HttpServlet.service(HttpServlet.java:618) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 根本原因
java.lang.IllegalArgumentException: "None" 不包含 '/' org.springframework.http.MediaType.parseMediaType(MediaType.java:697) org.springframework.http.HttpHeaders.getContentType(HttpHeaders.java:305) org.springframework.web.client.HttpMessageConverterExtractor.getContentType(HttpMessageConverterExtractor.java:113) org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:84) org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:492) org.springframework.web.client.RestTemplate.execute(RestTemplate.java:447) org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:295) pl.piquarium.mvc.HelloController.printWelcome(HelloController.java:35) sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:439) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:427) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) javax.servlet.http.HttpServlet.service(HttpServlet.java:618) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 注意 Apache 中提供了根本原因的完整堆栈跟踪 Tomcat/8.0.3 日志。
请求标头:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie:__utma=212787668.2094541430.1400264829.1400264829.1400268775.2; __utmz=212787668.1400264829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Host:192.168.0.200:8000
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36
响应标头:
Cache-Control:no-cache
Content-Length:2
Content-Type:None
Date:Fri, 16 May 2014 22:37:16 GMT
Server:WebIOPi/0.7.0/Python3.2
【问题讨论】:
-
您的视图在哪里命名为
hello?您打算将其设为RestController还是使用@ResponseBody? -
如果我用restTemplate评论车道,我的观点是好的。发布它加载没有问题
-
从该 GPIO 端点(Raspberry Pi?)发布整个响应标头。我怀疑该服务没有发回内容类型或虚假内容类型。
标签: java spring spring-mvc resttemplate