Google 远程 API Spring Boot 上的 404
Google Remote API 404 on Springboot
当部署到我的 Google 数据存储时,我正在尝试在 Google 应用程序引擎中连接 Spring 启动应用程序 运行 locally/not。我正在使用 Objectify 和 Google Remote API 因为我的理解是 Objectify 只有部署在 App 引擎(?)中才能工作。问题是当我尝试与 DataStore 通信时,Google Remote API 抛出 404。我想我在 spring 启动时的配置可能有误,因为 google docs 中关于在 web.xml 中设置配置的说明,我不会在基于 [=27= 的 JAR 上使用它] 启动应用程序。我创建了一个 SpringBootServletInitializer class 来尝试注册 servlet(代码在底部)。我是从 AWS 的角度来看这个问题的,到目前为止,我发现 Google 云是一场噩梦!连接到 DynamoDB 简单多了,我觉得我一定错过了什么!
import com.google.apphosting.utils.remoteapi.RemoteApiServlet;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Thomas on 01/07/2017.
*/
@Configuration
public class GoogleRemoteApiConfig extends SpringBootServletInitializer {
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(GoogleRemoteApiConfig.class, "/remote_api");
}
@Bean
public ServletRegistrationBean remoteApiRegistration() {
ServletRegistrationBean registration = new ServletRegistrationBean(new RemoteApiServlet(), "/remote_api");
Map<String,String> params = new HashMap<String,String>();
registration.setInitParameters(params);
registration.setLoadOnStartup(1);
registration.setUrlMappings(Arrays.asList("/remote_api"));
registration.setName("RemoteApiServlet");
return registration;
}
}
我从根本上误解了 remote-api 的工作原理,并且没有意识到我需要应用程序引擎中的应用程序 运行 来代理对 Google DataStore 的请求.我仍然很困惑,没有从 Java 访问 DataStore 的简单方法,但这种方法至少有效!
当部署到我的 Google 数据存储时,我正在尝试在 Google 应用程序引擎中连接 Spring 启动应用程序 运行 locally/not。我正在使用 Objectify 和 Google Remote API 因为我的理解是 Objectify 只有部署在 App 引擎(?)中才能工作。问题是当我尝试与 DataStore 通信时,Google Remote API 抛出 404。我想我在 spring 启动时的配置可能有误,因为 google docs 中关于在 web.xml 中设置配置的说明,我不会在基于 [=27= 的 JAR 上使用它] 启动应用程序。我创建了一个 SpringBootServletInitializer class 来尝试注册 servlet(代码在底部)。我是从 AWS 的角度来看这个问题的,到目前为止,我发现 Google 云是一场噩梦!连接到 DynamoDB 简单多了,我觉得我一定错过了什么!
import com.google.apphosting.utils.remoteapi.RemoteApiServlet;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Thomas on 01/07/2017.
*/
@Configuration
public class GoogleRemoteApiConfig extends SpringBootServletInitializer {
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(GoogleRemoteApiConfig.class, "/remote_api");
}
@Bean
public ServletRegistrationBean remoteApiRegistration() {
ServletRegistrationBean registration = new ServletRegistrationBean(new RemoteApiServlet(), "/remote_api");
Map<String,String> params = new HashMap<String,String>();
registration.setInitParameters(params);
registration.setLoadOnStartup(1);
registration.setUrlMappings(Arrays.asList("/remote_api"));
registration.setName("RemoteApiServlet");
return registration;
}
}
我从根本上误解了 remote-api 的工作原理,并且没有意识到我需要应用程序引擎中的应用程序 运行 来代理对 Google DataStore 的请求.我仍然很困惑,没有从 Java 访问 DataStore 的简单方法,但这种方法至少有效!