在服务器之间传递对象时替代REST

时间:2014-09-30 12:29:55

标签: rest spring-mvc ejb jndi rmi

我有一个spring-mvc项目作为前端项目。我的数据源由第二个javaee项目访问。通过提供 REST服务,此后端可以访问我的前端所需的所有数据。 REST-Service通过返回 XML 来提供对象。然后,这个XML将由我的前端获得封送

因此,当我的前端项目需要当前数据时,我创建了一个HttpUrlConnection,然后我调用了后端的REST服务。

E.g。我想获得所有电影对象的集合:

URL url = new URL(URLSAFE.REST_ALL_MOVIES);
                HttpURLConnection connection = (HttpURLConnection) url
                        .openConnection();
                connection.setDoOutput(true);
                connection.setInstanceFollowRedirects(false);
                connection.setRequestMethod("GET");
                connection.setRequestProperty("Content-Type", "application/xml");
                connection.getResponseCode();

                InputStream is = connection.getInputStream();
                Source sauce = new StreamSource(is);
                JAXBContext jaxbContext = JAXBContext.newInstance(Movies.class);
                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();

                JAXBElement<Movies> e = unmarshaller.unmarshal(sauce, Movies.class);
                Movies m = e.getValue();
                this.MOVIELIST = m;
                connection.disconnect();

在我为日志服务添加一些远程ejb查找之后,我想出了使用rmi传递对象的想法。但是我知道我不能将对象强制转换到我的前端,并且本地对象和rmi访问的对象之间存在很大差异。

但是在服务器之间传递对象会有什么好处呢?我需要将对象传递给前端,因为我必须将它们与 JSP 一起使用。

1 个答案:

答案 0 :(得分:0)

我建议你看看Spring.io guide。 RestTemplate的使用可以删除您在示例中的大量样板,并将REST资源映射到POJO。 XML不应该是任何障碍,因为Spring应该帮助你抽象它。