0

Jersey に一連の HTTP ヘッダーを取得させ、それらを POJO にマーシャリングすることは可能ですか?

4

4 に答える 4

4

jersey 1.x を使用している場合は @InjectParam を使用できますが、2.x にアップグレードして @BeanParam の使用を開始することをお勧めします。

于 2015-05-01T13:32:51.863 に答える
2

@HeaderParamとして特定のものにアクセスしたい場合はString、@Juned Ahsan または @DJ Spiess が提供する回答を使用してください。それらを POJO に注入する場合は@BeanParam、2.x でJersey を使用することをお勧めします。

例えば:

@Path("/foo")
public class FooResource {
    @GET
    @Path("/bar")
    public void bar(@BeanParam MyBean myBean) {
      // Do something
    }
}

public class MyBean {
    private String uaCompatible;

    public MyBean(@HeaderParam("X-UA-Compatible") String uaCompatible) {
        this.uaCompatible = uaCompatible;
    }

    public String getUacompatible() {
        return this.uaCompatible;
    }
}

@BeanParam@InjectParamJersey 1.x (>=1.4) または1.4 より前の 1.xで置き換えることができます@Inject。javax-@Injectは、Spring などの依存性注入フレームワークを使用している場合にも使用できます。

于 2013-07-17T17:33:40.413 に答える
1

はい、このようにします。( http://www.mkyong.com/webservices/jax-rs/get-http-header-in-jax-rs/から)

@Path("/users")
public class UserService {

@GET
@Path("/get")
public Response addUser(@HeaderParam("user-agent") String userAgent) {
        return Response.status(200)
            .entity("addUser is called, userAgent : " + userAgent)
            .build();

    }

}
于 2013-07-17T15:05:28.390 に答える
0

はい、あなたはそれを使用して行うことができます@HeaderParams

于 2013-07-17T14:19:34.947 に答える