2010-12-09 46 views
0

我的頁面曾經是所有帶Wicket的java作爲前端。現在,我有一個帶有登錄表單的wordpress開始頁面。當我以該登錄形式輸入電子郵件和密碼時,我想將其重定向到登錄服務,然後在登錄成功後將用戶重定向到檢票歡迎頁面。從Wordpress到Java POST

我試圖做到這一點的方式是從wordpress頁面發送POST消息,並在我的Java應用程序中使用服務處理它。這對我來說不太合適。

這是一個很好的方法嗎?如果不是,還有哪些其他方法可行?

這是我今天試圖實施:

@Path("/Login") 
@Consumes("application/xml") 
public class LoginServiceImpl implements LoginService{ 

private static final Response USER_AUTHORIZATION_FAILED = Response.status(
    Status.NOT_ACCEPTABLE).build(); 

private static final Response USER_SUCCESSFULLY_AUTHORIZED = Response.status(
    Status.ACCEPTED).build(); 

@Autowired 
private UserController userController; 

@Override 
@POST 
public Response login(@QueryParam("email") String email, 
    @QueryParam("password") String password) { 

    boolean authenticated = userController.authenticate(email, 
    password); 
    User u = userController.findByEmail(email); 

    if (u != null && u.getUserType() == UserType.COMPANY_RECRUITER) { 
    handleCompanyRecruiter(u); 
    return USER_SUCCESSFULLY_AUTHORIZED; 
    } 
    else if ((authenticated && u != null) && (u.getCompany().getIsActive())) { 
    signInUser(u); 
    setCorrectResponsePage(u); 
    return USER_SUCCESSFULLY_AUTHORIZED; 
    } 
    else{ 
    return USER_AUTHORIZATION_FAILED; 
    } 
} 

的applicationContext:

<FORM action="http://localhost:8080/Login" method="post"> 
    <P> 
    <LABEL for="email">Email: </LABEL> 
       <INPUT type="text" id="email"><BR> 
    <LABEL for="password">Password: </LABEL> 
       <INPUT type="text" id="password"><BR> 

    <INPUT type="submit" value="Send"> <INPUT type="reset"> 
    </P> 
</FORM> 

服務(動作後,從頂部的WordPress的頁面仿真)

<!-- LOGIN SERVICE --> 
     <jaxrs:server id="loginService" address="/login"> 
     <jaxrs:serviceBeans> 
     <ref bean="loginServiceBean" /> 
     </jaxrs:serviceBeans> 
     <jaxrs:providers> 
     <ref bean="jaxbProvider" /> 
     <ref bean="notFoundExceptionMapper" /> 
     </jaxrs:providers> 
    </jaxrs:server> 

<bean class="services.CandidateServiceImpl" 
     id="candidateServiceBean" /> 

運行這個,當我輸入的表格,再按發送我收到此錯誤:

HTTP ERROR: 404 

NOT_FOUND 
RequestURI=/Login 

我用註釋@Path(「/登錄」)的LoginServiceImpl也許是不正確的做法? 如何將POST重定向到正確的位置?

這是老Wicket的頁面登錄:

<wicket:panel> 
<wicket:extend>  
    <div id="top_login"> 
     <form wicket:id="loginForm"> 
       <div> 
        <label for="loginEmail" wicket:id="loginEmailLabel">Email</label> 
        <input class="text" id="loginEmail" wicket:id="loginEmail" tabindex="101" /> 
       </div> 
       <div> 
        <label for="loginPassword" wicket:id="loginPasswordLabel">Password</label> 
        <input class="text" type="password" id="loginPassword" wicket:id="loginPassword" tabindex="102" /> 
       </div> 
       <div class="loginBtnArea"> 
        <input wicket:id="loginButton" class="submit" type="submit" tabindex="103" value="Login" /> 

       </div> 
      </form> 
      <a wicket:id="forgotPasswordLink"><span class="forgotPassword" wicket:id="forgotPasswordLabel">Forgot your password?</span></a>       
    </div> 
</wicket:extend> 
</wicket:panel> 
+0

爲什麼你要使用WordPress的開始頁面? Wicket應該足以支持您的歡迎屏幕。 – dimitrisli 2010-12-09 08:55:41

+0

這是我無法控制的業務需求......我同意這是愚蠢的。 – 2010-12-09 09:00:50

回答

1

看來問題是在你的配置,而不是思維過程本身英寸

在您的applicationContext中聲明一個ID爲loginServiceBean的bean。

編輯:

我不完全熟悉你所使用的技術,但會不會是在@Consumes("application/xml") -annotation塊請求?您可以嘗試將@Consumes("application/x-www-form-urlencoded") -annotation添加到您的方法中,該方法應該處理登錄數據。

SOURE:http://docs.sun.com/app/docs/doc/820-4867/ggqqr?a=view

編輯^ 2:

表單的動作是http://localhost:8080/Login。如果我理解正確,應該是http://localhost:8080/Login/login