2013-06-05 70 views
-2

我有一個問題,你知道web服務如何工作的人。WebService登錄

目前我已經實現了一個使用JSF的hang子手遊戲。我的數據庫有如下表:

  • 球員
  • 遊戲
  • 打開

我對所有這些表的實體類。我也有:

PlayerController,GameController,TurnController等和PlayerFacade,GameFacade等。

我當前的登錄名在PlayerController和PlayerFacade中。我現在需要做的是爲登錄,玩家註冊和遊戲創建一個web服務。

我該如何做到這一點?

第一步是創建一個PlayerFacadeREST,不是嗎?

我應該使用哪些bean /類來進行登錄?

我創建了一個REST類型的WS從:

+2

這將取決於您要使用的Web服務的類型。如果您將使用JAX-WS Web服務,請遵循[本教程](http://www.mkyong.com/tutorials/jax-ws-tutorials/)。如果您將使用JAX-RS Web服務,請按照[另一本教程](http://www.vogella.com/articles/REST/article.html)進行操作。請記住,最終,消費者只需執行一個在LAN/WAN/net的某個地方執行的方法,可能會等待更多的響應,但其他類中的所有邏輯都不應該改變。 –

+2

這不是JSF特定的問題。在JSF中創建和調用Web服務與在任何其他MVC框架中完全沒有區別。 Web服務完全獨立於JSF。畢竟,您只需使用相同的Java代碼行在JSF中調用它,就像您在任何其他框架中甚至在具有'main()'方法的普通Java應用程序中執行的一樣。 – BalusC

回答

0
+0

從哪裏打電話給auth服務?從支持豆?或從JavaScript? – fGo

+0

我應該從哪裏調用它?我還沒有實現...登錄我已經從xhtml文件調用PlayerController.login ...我想在一個web服務這工作不同...這是我想知道的,什麼是正確的方法來做到這一點:) – dak

+0

與werservice你必須做2件事情。 1創建服務(讓我們說肥皂)。 2創建一個客戶端來使用它(存根),並且此客戶端必須從您的方法'PlayerController.login'中調用 – fGo

0

在這裏學習,在世界上所有的教程後,進入我的解決方法做身份驗證服務我的實體類播放器...裏面去這個:

public Receiver login(@PathParam("name") String name, @PathParam("password") String password) { 

     Receiver r = new Receiver(); 

     //TODO TRY/CATCH 
     Query createNamedQuery = getEntityManager().createNamedQuery("Player.findByNameAndPassword"); 
     createNamedQuery.setParameter("name", name); 
     createNamedQuery.setParameter("password", password); 
     Player j = (Player) createNamedQuery.getSingleResult(); 
     if(j == null){ 
      r.setReturn(-1); 
      return r; 

     } 

// DO ANYTHING WE WANT... I CREATE A NEW GAME IN MY CASE 
     Game g = new Game(); 

     p.setIdPlayer(j); 
     getEntityManager().persist(g); 
     getEntityManager().flush(); 
     r.setReturn(p.getIdGame()); 
     return r; 

    } 
相關問題