Spring ile çok uzun bir ilişkiden sonra Dropwizard'a dönmeye karar verdim. Çabuk barebone REST hizmetini hemen oluşturdum ve sorunsuz çalışıyor.Basit Dropwizard 0.7.1 Uygulama Opsiyonel QueryParam Üzerinden Başarısız Oldu Java/Java 8
Ancak Dropwizard kullanıcı kılavuzunda önerildiği şekilde Dropwizard 0.7.1 ve Java 1.8 kullanma
, sadece POM girişleri olarak, dropwizard çekirdekli bağımlılık ve Java 1.8, zorlamak için maven derleyici eklentisi olan
INFO [2015-01-03 17:44:58,059] io.dropwizard.jersey.DropwizardResourceConfig: The following paths were found for the configured resources:
GET /(edge.dw.sample.controllers.IndexController)
ERROR [2015-01-03 17:44:58,158] com.sun.jersey.spi.inject.Errors: The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Missing dependency for method public java.lang.String edge.dw.sample.controllers.IndexController.index(java.util.Optional) at parameter at index 0
Exception in thread "main" javax.servlet.ServletException: [email protected]30103b7==com.sun.jersey.spi.container.servlet.ServletContainer,1,false
aşağıdaki denetleyicisi kod gibidir:
temel denetleyiciye bir Opsiyonel QueryParam eklemeyi deneyin en kısa sürede, uygulama aşağıdaki hata (kısalık için kesim) ile başlatma başarısız@Path("/")
public class IndexController {
@GET
@Timed
public String index(@QueryParam("name") Optional<String> name) {
String saying = "Hi";
if(name != null && name.isPresent()) {
saying += " " + name.get();
}
return saying;
}
}
Opsiyonel'i karışımdan kaldırırsam, uygulama düzgün çalışır. İsteğe bağlı özel kodu null çekler ile değiştiririm ve mükemmel çalışır.
Burada temel bir şey eksik miyim? Hem Google Guava Optional hem de java.util.Optional, aynı hatayla başarısız.
Hızlı bir Google SO yararlı hiçbir şey vermiştir araması/(Ve evet, Opsiyonel nesnesine dar aşağı yaptım) ama önceden
Teşekkür kaçırmış olabilir bir kaynak bana gelin çekinmeyin!
Guava İsteğe bağlı varsayılan olarak dropwizard tarafından işlenir, sadece FYI. Cevabı işaretlemeyi unutma. – Natan
Teşekkür ederim, bu karışık bir hata ayıklama 45 dakikalık bir maceraydı. – Joe