Jetty Jersey ve Jackson'ı Eclipse'nin dışına çıkarmaya çalışırken çıldırıyorum.Jetty + Jersey + Jackson, Eclipse (Success) vs komut satırındaki farklı davranış (Hata Desteklenmeyen Ortam Türü)!
public class Main {
public static void main(String[] args) throws Exception {
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*").setInitParameter(
"jersey.config.server.provider.classnames", CanaryEndpoint.class.getCanonicalName());
Server jettyServer = new org.eclipse.jetty.server.Server(8089);
jettyServer.setHandler(context);
jettyServer.start();
jettyServer.join();
}
}
bir uç nokta sınıfı:
@Path("/endpoint")
public class CanaryEndpoint {
@POST
@Path("/test")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String canaryTest(ValueWrapper param) {
System.out.println("Deserialized Property: " + param.isFlag());
return "{OK}";
}
}
ve Varlığı (nesneleştirmek) sınıfı:
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class ValueWrapper {
@XmlElement
public boolean flag;
public ValueWrapper() {}
public boolean isFlag() { return flag; }
public void setFlag(boolean flag) { this.flag = flag;}
}
Şimdi komik kısım geliyor
Ben bir ana sınıf var . Her iki İçerik türünde ve Kabul seçeneğiyle 8089 bağlantı noktasına bir POST dilekçesi ve{"flag" : "true"}
ham JSON değeri göndererek JSON tüketimini test etmek için Postman'ı kullanıyorum. Unsuported Medya Türü
Benim basit: Ben doğru Tutulma sunucu cevapları yoluyla Ana sınıfı oynamak ama CLI (mvn temiz paket + java -cpJar MAIN_CLASS) 'de bunu yaparken, sunucu Hata 415 cevapları
pom.xml:
<jersey.version>2.14</jersey.version>
<jetty-version>9.2.6.v20141205</jetty-version>
(...)
<artifactId>jetty-server</artifactId>
<artifactId>jetty-servlet</artifactId>
<artifactId>jersey-container-servlet-core</artifactId>
<artifactId>jersey-json</artifactId>
<artifactId>jersey-media-json-jackson</artifactId>
Olanlar ile ilgili herhangi bir öneriniz var mı?
DÜZENLEME: Biraz sorunu daralttım. Uygulama, konsol konsolundan yürütüldüğünde com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider gibi görünmüyor. Bunu nasıl manuel olarak kaydedebilirim?