我正在开发一个项目,我们在同一设备上有两个正在运行的应用程序。在这些应用程序之间发送请求时遇到问题。一个在8080中执行,另一个运行在8081 中
这是发送请求的方法:
public void sendRequest(String device, String status) {
RestTemplate rest = new RestTemplate();
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
rest.setMessageConverters(messageConverters);
if (EnumClass.InputStatus.TRUE.getStatus().equals(status)) {
setStatus("true");
} else if (EnumClass.InputStatus.FALSE.getStatus().equals(status)) {
setStatus("false");
} else {
setStatus(status);
}
MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
map.add("device", device);
map.add("status", getStatus());
String result = rest.postForObject("http://localhost:8080/DeviceStatus", map, String.class);
System.out.println(result);
}
这是另一个应该接收请求的应用程序的方法:
@RestController
public class DeviceController {
@RequestMapping(value = "DeviceStatus", method = RequestMethod.POST)
public void ReceiveDeviceStatus(@RequestParam("device") String device,@RequestParam("status") String status){
System.out.println("Entrou aqui");
System.out.println("device = " + device);
System.out.println("status = " + status);
}
}
我收到以下消息:
2015-04-08 15:39:11.920 WARN 6140 --- [nio-8081-exec-1] o.s.web.client.RestTemplate : POST request for "http://localhost:8080/DeviceStatus" resulted in 405 (Method Not Allowed); invoking error handler
2015-04-08 15:39:11.931 ERROR 6140 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpClientErrorException: 405 Method Not Allowed] with root cause
org.springframework.web.client.HttpClientErrorException: 405 Method Not Allowed
接收到请求的应用程序返回连续消息:
2015-04-08 15:12:24.555 INFO 7352 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 34 ms
2015-04-08 15:12:24.577 WARN 7352 --- [nio-8080-exec-1] o.s.web.servlet.PageNotFound : Request method 'POST' not supported
我没有向任何网页发送信息,我只是使用请求在应用程序之间发送信息。有人能帮我处理这个错误吗?当我在同一个应用程序中使用请求时,它可以正常工作。
在您的第二个应用程序中,ReceiveDeviceStatus
需要返回一些东西。请参阅此帖子。