GoogleJsonResponseException: 404 No se encuentra utilizando el motor de punto final de google apps backend

He seguido el tutorial a continuación.

Https://developers.google.com/eclipse/docs/running_and_debugging_2_0

Que básicamente agregó un backend GAE a mi aplicación existente. A continuación, pruebe el ejemplo a continuación, ejecutarlo en el servidor de desarrollo local y recibo la siguiente excepción que se produce después

Note result = endpoint.insertNote(note).execute(); 

se llama.

 com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found 

Mi código está abajo.

 package com.cloudnotes; import java.io.IOException; import java.util.Date; import android.os.AsyncTask; import android.content.Context; import com.cloudnotes.noteendpoint.Noteendpoint; import com.cloudnotes.noteendpoint.model.Note; import com.google.api.client.extensions.android.http.AndroidHttp; import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestInitializer; import com.google.api.client.json.jackson.JacksonFactory; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new EndpointsTask().execute(getApplicationContext()); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public class EndpointsTask extends AsyncTask<Context, Integer, Long> { protected Long doInBackground(Context... contexts) { Noteendpoint.Builder endpointBuilder = new Noteendpoint.Builder( AndroidHttp.newCompatibleTransport(), new JacksonFactory(), new HttpRequestInitializer() { public void initialize(HttpRequest httpRequest) { } }); Noteendpoint endpoint = CloudEndpointUtils.updateBuilder( endpointBuilder).build(); try { Note note = new Note().setDescription("Note Description"); String noteID = new Date().toString(); note.setId(noteID); note.setEmailAddress("E-Mail Address"); Note result = endpoint.insertNote(note).execute(); } catch (IOException e) { e.printStackTrace(); } return (long) 0; } } } 

Otra causa posible para este problema no es establecer el id de aplicación correcto en appengine-web.xml:

 <?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>APPLICATION_ID_HERE</application> 

 </appengine-web-app> 

Otra razón posible para 404 si llama al método con un parámetro nulo y el método no acepta parámetros nulos.

Tuve un problema similar con un método con 4 parámetros de cadena y envié null para uno de ellos y todo lo que conseguí fue un estúpido 404.

Otra razón posible para 404 en el servidor de desarrollo (local) es que usted tiene un parámetro con algunos caracteres extraños (como una url por ejemplo) que el servidor de desarrollo (local) no maneja correctamente el evento si funciona bien en el motor de la aplicación en vivo Servidores. Posible solución: en lugar de múltiples params utilizar un simple objeto java.

Tuve el mismo problema y así es como lo arreglé.

Un poco de fondo
Tenía dos versiones de la API desplegada en App Engine, que creo que debería estar bien. La consola de administración no mostró ningún problema y estaba recibiendo el código 200 OK después de implementar la versión 2 de la API en el archivo de registro.

 /_ah/spi/BackendService.getApiConfigs 200 118ms 8kb 

Pero no importa lo que he intentado siempre estaba recibiendo el error 404 no encontrado .

No estoy seguro de cuál era el problema, pero creo que Web Server en App Engine estaba redirigiendo todas las solicitudes a la versión 1. Podría ser porque ambas versiones tenían las siguientes configuraciones en su web.xml.

 <servlet-mapping> <servlet-name>SystemServiceServlet</servlet-name> <url-pattern>/_ah/spi/*</url-pattern> </servlet-mapping> 

Solución
Quité la versión 1 y redistribuí la versión 2. Entonces todo funcionó bien.

Esto se reduce a la versión predeterminada del motor de la aplicación que es diferente de la que ha implementado. Accede aquí: https://appengine.google.com/deployment?app_id=s~your-project-id y cambia la versión predeterminada

Esto sucede porque su implemento de back-end no está completamente implementado. Simplemente vuelva a implementar su back-end y asegúrese de que tiene el despliegue de mensajes de éxito. Puede comprobar el proceso de implementación de detalle en el encabezado de la página superior. También, puede probar visitando la url para comprobar:

 https://developers.google.com/apis-explorer/?base=https://[YOUR_PROJECT_ID].appspot.com/_ah/api#p/ 

Intente actualizar sus bibliotecas de complementos y dependencias a la versión más reciente. Consulte https://stackoverflow.com/a/37639701/857346 .

  • ¿Tengo que usar CollectionResponse como un tipo de retorno en GAE Endpoints API o puedo usar colecciones java de entidades?
  • Deploy to App Engine problem - Debe iniciar sesión para realizar esta acción
  • Appengine proyecto android conectado
  • Gestión de sesiones en Google App Engine con Android / IPhone
  • Integración de aplicaciones de Android Facebook con GAE
  • GAE no reconoce la cookie?
  • Convertir una cadena en número de coma flotante en java
  • Google App Engine y Android
  • Almacena la imagen en Blobstore desde el cliente android y recupera blobkey y sube url para almacenarla en Datastore. GAE
  • Con Android, ¿cómo establezco el plazo máximo para una solicitud de Cloud Endpoint?
  • Error en el proyecto de Android de App Engine conectado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.