KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have build a web application using spring mvc framework to publish REST services. For example: @Controller @RequestMapping("/movie") public class MovieController { @RequestMapping(value = "/{id}", method = RequestMethod.GET) public @ResponseBody Movie getMovie(@PathVariable String id, @RequestBody user) { return dataProvider.getMovieById(user,id); } Now I need to deploy my application but I have the following problem: The clients do not have direct access to the computer on which the application resides (There is a firewall). Therefore I need a redirection layer on a proxy machine (accessible by the clients) which calls the actual rest service. I tried making a new call using RestTemplate: For Example: @Controller @RequestMapping("/movieProxy") public class MovieProxyController { private String address= "http://xxx.xxx.xxx.xxx:xx/MyApp"; @RequestMapping(value = "/{id}", method = RequestMethod.GET) public @ResponseBody Movie getMovie(@PathVariable String id,@RequestBody user,final HttpServletResponse response,final HttpServletRequest request) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); RestTemplate restTemplate = new RestTemplate(); return restTemplate.exchange( address+ request.getPathInfo(), request.getMethod(), new HttpEntity<T>(user, headers), Movie.class); } This is ok but I need to rewrite each method in the controller to use the resttemplate. Also, this causes redundant serialization/deserialization on the proxy machine. I tried writing a generic function using restemplate, but it did not work out: @Controller @RequestMapping("/movieProxy") public class MovieProxyController { private String address= "http://xxx.xxx.xxx.xxx:xx/MyApp"; @RequestMapping(value = "/**&q
Tags (comma-separated)
Save Edits
Cancel