1

成功せずに URL クエリ パラメータを抽出しようとしています。

例: AboutWebServices/merchantofferings?lat=5?long=7?cat=9

Tomcat サーバーを使用して、Restlets のさまざまな注文を試しました。

@Override
public synchronized Restlet createInboundRoot() {

     Router router = new Router(getContext());

    Extractor extractor = new Extractor(getContext());
    extractor.extractFromQuery("lat", "lat", true); 
    extractor.extractFromQuery("long", "long", false);
    extractor.extractFromQuery("cat", "cat", false);

    ChallengeAuthenticator guard = new ChallengeAuthenticator(getContext(),    
      ChallengeScheme.HTTP_BASIC, 
            "AnywhereAbout");
    guard.setVerifier(new UserVerifer());

    guard.setNext(extractor);
    extractor.setNext(router);

   //     router.attach("/merchantofferings", extractor);
    router.attach("/merchantofferings", MerchantOfferings.class);

    router.attach("/merchantofferings/{id}", MerchantOfferings.class);


    router.attach("/merchantprofile", MerchantProfile.class);

    router.attach("/merchantprofile/{id}", MerchantProfile.class);

    return guard;
   }

ルーティングはこのメソッドに対して正常に機能しますが、属性は null です。

 //@Get("json+?lat?long?cat")
 @Get("json")
 public String representGet() {

Context context = getContext();

String lat = (String) context.getAttributes().get("lat");
String lon = (String) context.getAttributes().get("long");
String cat = (String) context.getAttributes().get("cat");

    return "hello, world: " + this.getRequest().toString();
 }

また、私は新しい Restlet in Action を読んでいます。すばらしい本ですが、注釈でクエリ パラメータを指定できると書かれていますが、それらがどのように使用されるかについては説明されていません。つまり、例がありません。誰か知っていますか?いずれにせよ @Get("json+?lat?long?cat") のバリエーションも機能しませんでした。

4

0 に答える 0