2014-09-30 46 views
0

我有一个spring-mvc项目作为前端项目。我的数据源由第二个javaee项目访问。这个后端通过提供REST服务来访问我前端需要的所有数据。 REST服务通过返回XML提供对象。这个XML将会在我的前端得到编组在服务器之间传递对象时替代REST

所以,当我的前端项目需要当前数据,我创建一个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

+0

您位于Java环境:http://docs.oracle.com/javaee/7/tutorial/doc/jaxrs-client.htm#BABEIGIH您不需要为休息应用程序做什么 – maress 2014-09-30 13:09:37

+0

您的开始假设你必须传递对象是错误的。通过网络传递对象是一个可怕的想法,因为任何不幸做DCOM或CORBA的人都可以告诉你。 – SteveD 2014-09-30 13:45:45

+0

但是在spring-mvc前端和数据源之间放置一个后端是一个糟糕的主意吗? – Goot 2014-09-30 14:09:03

回答

0

我建议看看这个Spring.io guide。 RestTemplate的使用可以移除示例中的大量样板,并将REST资源映射到POJO上。 XML不应该成为任何障碍,因为Spring应该会显着帮助您将其抽象化。