我正在構建一個實現JSF作爲前端框架的java EE應用程序。該應用程序需要使用一個RESTFul服務(我擁有它作爲一個單獨的應用程序託管)。從JSF調用REST客戶端
我發現了一些關於實現Restlet的體面教程,但是我仍然錯過了最後一步。用戶應該能夠點擊一個按鈕,並且由本地REST客戶端將POST提交給服務器並評估響應。我非常感謝有關如何實現這一目標的建議。
我正在構建一個實現JSF作爲前端框架的java EE應用程序。該應用程序需要使用一個RESTFul服務(我擁有它作爲一個單獨的應用程序託管)。從JSF調用REST客戶端
我發現了一些關於實現Restlet的體面教程,但是我仍然錯過了最後一步。用戶應該能夠點擊一個按鈕,並且由本地REST客戶端將POST提交給服務器並評估響應。我非常感謝有關如何實現這一目標的建議。
從JSF託管Bean使用Apache HttpClient。
@ManagedBean(eager = true, name = "restAuthBean")
@SessionScoped
public class RESTAuthBean implements Serializable {
private CloseableHttpClient CLIENT = HttpClients.createDefault();
public UserModel saveUser(UserModel model) {
try {
CLIENT = HttpClients.createDefault();
LOGGER.debug("RESTAuthBean: save user called ");
HttpPost request = new HttpPost(AUTH_SERVICE_PATH + "user/register");
JSONObject json = new JSONObject();
json.put("firstname", model.getFirstname());
json.put("lastname", model.getLastname());
json.put("ip", model.getIp());
json.put("email", model.getEmail());
json.put("password", PasswordUtil.hashPassword(model.getPassword()));
StringEntity params = new StringEntity(json.toString(), "UTF-8");
request.addHeader("content-type", "application/json;charset=UTF-8");
request.addHeader("charset", "UTF-8");
request.setEntity(params);
HttpResponse response = (HttpResponse) CLIENT.execute(request);
HttpEntity entity = response.getEntity();
ObjectMapper mapper = new ObjectMapper();
model = mapper.readValue((EntityUtils.toString(entity)), UserModel.class);
} catch (IOException | ParseException ex) {
LOGGER.debug("RESTAuthBean: save user error " + ex.getLocalizedMessage());
}
return model;
}
謝謝您的意見。我在決定在哪裏/如何在集成到應用程序B(REST,沒有GUI)的應用程序-A(JSF)中實現REST客戶端掙扎。
我的決定是爲了實現它在通過EJB服務層通過的Xtreme騎自行車的人的建議,並揭露那些不基於JSF作爲How to implement JAX-RS RESTful service in JSF framework
進一步澄清授權使用JAXB的其他應用程序我的控制方法也相當參與,但它將是第三方api和java安全框架的結合。
我想你如果你喜歡EJB3,需要使用wildfly swarm –
我個人會開發一個服務接口來訪問您感興趣的REST函數,然後使用REST客戶端來實現它以訪問服務。然後,用通用的方式開發JSF bean並提供對服務的訪問。順便說一句,你想如何管理授權? –
*「A **本地** REST客戶端」* Huh?究竟在哪裏?您制定問題的方式給人的印象是,您希望在客戶端使用JavaScript,而不是服務器端的Java。在任何情況下..這是食品閱讀,可能是一個重複:http://stackoverflow.com/questions/29982657/how-to-implement-jax-rs-restful-service-in-jsf-framework – BalusC