使用它

JAX-RS帕拉姆转换器 - 编译时错误,这是我的PARAM转换器使用它

import org.springframework.data.domain.Sort; 

public class MyParamConverter implements ParamConverter<Sort> {

@Override

public Sort fromString(String s){

return new Sort(new Sort.Order(Sort.Direction.ASC, "ds"));

}

@Override

public String toString(Sort mo){

return mo.toString();

}

}

这是我paramconverter提供商

@Provider 

public class MyParamConverterProvider implements ParamConverterProvider {

@Override

public <T> ParamConverter<T> getConverter(Class<T> rawType, Type genericType, Annotation[] annotations) {

if(rawType.equals(Sort.class)){

return (ParamConverter<T>) new MyParamConverter();

}

return null;

}

我想在我的API使用,因为

@GET 

@Path("/")

Response read(@QueryParam("sort") Sort order);

我期待的jax映射字符串,我通过我的url例如&sort="asc"来排序对象。但是我得到编译时错误have a registered implementation of paramconverter provider。当我通过查询参数&sort="somethung"时,我需要找到一种方法,通过使用自定义注释或使用Param Converter自动转换为SORT

回答:

参考您的意见,尝试注册您的供应商,如:

@ApplicationPath("/") 

public class MyApplication extends ResourceConfig {

@Override

public Set<Class<?>> getClasses() {

final Set<Class<?>> classes = new HashSet<Class<?>>();

classes.add(MyParamConverterProvider.class);

return classes;

}

}

或者,如果您有您注册的供应商使用泽西

@ApplicationPath("/") 

public class MyApplication extends ResourceConfig {

public MyApplication() {

packages("my.package");

// or without package scanning

register(MyParamConverterProvider.class);

}

}

以上是 使用它 的全部内容, 来源链接: utcz.com/qa/259850.html

回到顶部