Spring MVC Post 本地应用程序之间的请求
Spring MVC Post Request Between Local Aplications
我正在开发一个项目,我们在同一台设备上有两个 运行 应用程序。我在这些应用程序之间发送请求时遇到问题。
一个在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
以及接收请求returns sequinte 消息的应用程序:
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
我没有向任何网页发送信息,我仅使用请求在应用程序之间发送信息。有人会帮我处理这个错误吗?
当我在同一个应用程序中使用 Requests 时,它工作正常。
在您的第二个应用程序中,ReceiveDeviceStatus
需要 return 一些东西。看到这个 post.
我正在开发一个项目,我们在同一台设备上有两个 运行 应用程序。我在这些应用程序之间发送请求时遇到问题。 一个在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
以及接收请求returns sequinte 消息的应用程序:
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
我没有向任何网页发送信息,我仅使用请求在应用程序之间发送信息。有人会帮我处理这个错误吗? 当我在同一个应用程序中使用 Requests 时,它工作正常。
在您的第二个应用程序中,ReceiveDeviceStatus
需要 return 一些东西。看到这个 post.