2014-09-30 48 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應該會顯着幫助您將其抽象化。