java-如何对@PathParam使用自定义类型?

我想将非spring bean类对象用作球衣Web服务类方法的参数.但这在构建时会给出缺少的依赖项错误.

我的代码是:

@Component
@Path("/abcd")
public class ActorServiceEndpoint {

    @POST
    @Path("/test/{nonspringBean}")
    @Produces(MediaType.APPLICATION_XML)
    public void addActor(@PathParam("nonspringBean") MyNonSpringBeanClass nonspringBean){
}

}

解决方法:

问题是路径参数以字符串形式出现.根据规范,如果我们希望将自定义类型作为@PathParam注入,则自定义类应具有以下三项之一:

>返回类型的公共静态valueOf(String param)
>一个公共静态fromString(String param)返回类型
>或接受字符串的公共构造函数
>另一个选项实现ParamConverter.您可以看到示例here.

如果您不拥有该类(它是无法更改的第三方类),那么您唯一的选择是使用ParamConverter / ParamConverterProvider对.

在这两种情况下,您都希望通过在构造函数或上述方法之一中解析String来相应地构造实例.完成此操作后,可以将自定义类型作为带有注释的方法参数.

对于其他参数,例如@ FormParam,@ HeaderParam,@ QueryParam等,也是如此.

上一篇:java-泽西ResourceConfig不会自动发现,但是应用程序会发现吗?


下一篇:用于Spring-Jersey应用程序的JerseyTest中的资源模型验证失败