1

こんにちは、Liferay の buildServices から生成された webService があります。メソッドは次のようになります

 public User getUserTest(long userId) {

    User u = null;
    try {
        Token token = OAuthFactoryUtil.createToken("sasa", "sdad");
    } catch (OAuthException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    try {
        u = UserLocalServiceUtil.getUser(userId);
        System.out.println("xx user " + u.getScreenName());
    } catch (Exception e) {
        System.out.println(" Exception ************* " + e.toString());
    }

    return u;
} 

この ws のパラメーターは次のようになります。

http://localhost:8080/demo-portlet/api/json?serviceClassName=com.sample.portlet.library.service.BookServiceUtil&serviceMethodName=getUserTest&userId=10195&serviceParameters=[userId]

パラメータとして持つuserId..

必要に応じてどのようにパラメーターを渡しますかHttpServletRequest..私のメソッドは次のようになります

public User getUserTest(HttpServletRequest httpRequest) {

    User u = null;

    try {

        String version = httpRequest.getHeader("X-PHM-APP-VERSION");
        Token token = OAuthFactoryUtil.createToken("sasa", "sdad");
    } catch (OAuthException e1) {
        e1.printStackTrace();
    }

    try {
        String authorization = httpRequest.getHeader("Authorization");
        u = UserLocalServiceUtil.getUser(Long.valueOf(authorization));
        System.out.println("authorization --> " + authorization);
        System.out.println("xx user " + u.getScreenName());
    } catch (Exception e) {
        System.out.println(" Exception ************* " + e.toString());
    }

    return u;
}

HttpServletRequestURLを渡すのではなく、ヘッダーからパラメーターを取得する必要があります。ヘッダーからパラメーターを取得するより良い方法はありますか? ご協力いただきありがとうございます

4

2 に答える 2

2

Webサービスレイヤーは通常、リクエストを決して渡さない後の段階にあると思います。理想的には、リクエストの代わりにヘッダーパラメーターを Web サービスに渡すことです

于 2012-06-22T04:32:28.687 に答える
0

Liferay では、 から取得HttpServletRequestPortletRequestます。com.liferay.portal.util.PortalUtilクラスをご利用ください。

その中に2つの方法があります。getHttpServletRequest()getOriginalServletRequest()、これらのメソッドから両方のコア レベルの http リクエストを取得します。

于 2012-06-22T04:28:53.630 に答える