Jersey su Jetty su getti Android ContainerException: l'istanza ResourceConfig non contiene alcuna class di risorse radice

Sto cercando di eseguire Jersey su Jetty su Android.

Ho creato un Android che istanzia un server Jetty con una Servlet di Jersey. Comunque quando inizio Jetty e visita una risorsa REST (nel mio caso: http://192.168.1.12:8080/api/hello ) ho un ContainerException con il messaggio: l'istanza ResourceConfig non contiene alcuna class di risorse radice. (vedere la traccia di exception di seguito).

  • Android java.security.cert.CertPathValidatorException: l'ancoraggio di fiducia per il path di certificazione non è trovato
  • Come utilizzare la window di avanzamento in AsyncTask in android
  • Come verificare se vibration è successo, in logcat?
  • Come decorare in modo selettivo gli oggetti RecyclerView
  • Google Play Store - errore imprevisto (-32600)
  • come si legge i file di text fuori da Internet in Android 4.0.3
  • Qualche idea di perché?

    PIÙ DETTAGLI:

    Logcat sta fornendo le seguenti SEGNALAZIONI.

    The following errors and warnings have been detected with resource and/or provider classs:

    SEVERE: mancanza di dipendenza per field: privato java.lang.ThreadLocal com.sun.jersey.server.impl.container.servlet.JSPTemplateProcessor.requestInvoker SEVERE: mancanza di dipendenza per il field: private java.lang.ThreadLocal com.sun.jersey.server .impl.container.servlet.JSPTemplateProcessor.requestInvoker

    Questa è una strana causa java.lang.ThreadLocal è disponibile per Android e HttpServletRequest e HttpServletResponse dovrebbe essere disponibile poiché ho incluso servlet-api-2.5.jar nella cartella libs.

    Jersey è dipendente da alcune librerie javax (jaxb-api-2.2.2.jar, jndi-1.2.1.jar, stax-api-1.0-2.jar) che ho dovuto aggiungere al progetto e impostare il – parametro della libreria temporanea per ignorare l'avviso di dex sui pacchetti javax come dependencies.

    Ho anche rimosso le seguenti classi (RenderedImageProvider, DataSourceProvider, MimeMultipartProvider dal pacchetto com.sun.jersey.core.impl.provider.entity dal jar del core jersey) per evitare dependencies da java.awt e javax.mail.

    Traccia di ECCEZIONE:

     javax.servlet.UnavailableException: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classs. at org.eclipse.jetty.servlet.ServletHolder.makeUnavailable(ServletHolder.java:409) at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:450) at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:331) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:476) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:517) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:935) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:404) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:184) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:870) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:346) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:596) at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1051) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:592) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:214) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:520) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:528) at java.lang.Thread.run(Thread.java:1019) 

    Avviare l'attività Android Server:

     public class StartServerActivity extends Activity { private Server webServer; private final static String LOG_TAG = "Jetty"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); System.setProperty("java.net.preferIPv4Stack", "true"); System.setProperty("java.net.preferIPv6Addresses", "false"); webServer = new Server(8080); ServletHolder servletHolder = new ServletHolder(com.sun.jersey.spi.container.servlet.ServletContainer.class); servletHolder.setInitParameter("com.sun.jersey.config.property.packages", "com.famenu.server.resources"); ServletContextHandler servletContextHandler = new ServletContextHandler(webServer, "/api", true, false); servletContextHandler.addServlet(servletHolder, "/hello"); webServer.setHandler(servletContextHandler); try { webServer.start(); Log.d(LOG_TAG, "started Web server"); } catch (Exception e) { Log.d(LOG_TAG, "unexpected exception starting Web server: " + e); } } 

    }

    Risorsa Jersey:

     package com.famenu.server.resources; 

    import javax.ws.rs.GET; importzione javax.ws.rs.Path; import javax.ws.rs.Produces;

    @Path ("/") class pubblica HelloResource {

     @GET @Produces("text/plain") public String getMsg() { return "Hello Resource"; } 

    }

    Sto usando Jetty 7.3.0.v20110203, Jersey 1.12, Android 1.6 Sono arrivato fino a questo punto dopo un'altra exception spiegato qui

  • Android: quattro navigazione direzionale
  • È ansible modificare l'indicatore di tabulazione della barra di command in modo programmato
  • Come mostrare la miniatura dal path dell'image?
  • Disegno di separatore / divisione di disegni Android in layout?
  • Come disegnare la vista in cima alla tastiera soft come WhatsApp?
  • Apri la pagina in applicazione Twitter da un'altra applicazione - Android
  • One Solution collect form web for “Jersey su Jetty su getti Android ContainerException: l'istanza ResourceConfig non contiene alcuna class di risorse radice”

    non utilizzare il pacchetto / qualsiasi altra scansione su piattaforms non supportte.

    La properties; Classnames: com.sun.jersey.config.property.classnames dovrebbe funzionare per te (devi esplicitamente dichiarare tutte le classi di risorse radice (@Path annotated).

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.