Uç noktaların kaynak dosya açıklamasına bağlı olarak oluşturulduğu bir RESTful hizmeti yapıyorum. Kaynaklar, örtülü bir yöntem oluşturucu işleyicisiyle kaydediliyor, ancak örtük işleyiciyi açık bir şekilde değiştirmeye çalıştığımda bir duvara çarpıyorum.Özel jersey Ayırıcı
Aşağıdaki örnekte, dolaylı ItemInflector uygulamasıyla örtülü işleyici Inflector'un yerini aldım. Dize sonucu yürütme sonrasında bekleniyor.
final Resource.Builder resourceBuilder = Resource.builder();
resourceBuilder.path("api/myservice/item");
final ResourceMethod.Builder methodBuilder = resourceBuilder.addMethod("GET");
methodBuilder.produces(MediaType.TEXT_PLAIN_TYPE)
.handledBy(new ItemInflector<ContainerRequestContext, String>(String.class));
final Resource resource = resourceBuilder.build();
registerResources(resource);
ItenInflector uygulaması: Ben son nokta isabet çalıştığınızda Çalışma zamanında
public class ItemInflector<DATA extends ContainerRequestContext, RESULT> implements Inflector<DATA, RESULT> {
private Class<RESULT> type;
public ItemInflector(Class<RESULT> type) {
this.type = type;
}
@Override
public RESULT apply(DATA data) {
return type.cast("Half programmatically generated endpoint");
}
}
aşağıdaki hata atılır.
Caused by: java.lang.IllegalArgumentException: Type parameter RESULT not a class or parameterized type whose raw type is a class
Birisi, Inflector uygulamasında neyi yanlış yaptığımı temizleyebilir mi? RESULT tipi nasıl parametrelendirilir veya tanımlanır?
Güncelleme yapmak ister misiniz? İkinci linkler kırık. – Maxim
zaten bitmiştir :) –