我正在尝试通过命令mvn appengine:run在本地appengine模拟器上运行我的代码,并且没有错误,仅此而已,它找不到任何RestController(例如:无文件)找到:/ setiaalam / amenities)。
此外,启动中没有显示 Spring Boot徽标,所以我怀疑我需要为其指定servlet初始化吗?在我自己的Apache Tomcat Eclipse环境中,它运行良好,但这仅在我要“ 运行”主类的情况下有效。
更具体地说,我没有创建自定义servlet,我只想将其迁移到Google Cloud AppEngine Standard-尽管没有错误,但根本没有Spring Boot启动徽标。尝试使用Postmen访问在本地工作的任何GET API总是返回404。尝试从以前的Apache Tomcat本地主机访问它时没有问题。
是的,我在这里遵循github指南: Link to Github for Spring boot Google Appengine Standard
它没有提及修改web.xml的任何内容。
我在这里想念什么吗?
代码(主应用):
@SpringBootApplication
@EnableJpaAuditing
public class SetiaAlamApplication{
public static void main(String[] args) {
SpringApplication.run(SetiaAlamApplication.class, args);
}
}
代码(控制器的1):
@RestController
@RequestMapping("/setiaalam")
public class AmenityController {
@Autowired
AmenityDAO amenityDAO;
//service to get all amenities
@GetMapping("/amenities")
public List<Amenity> getAllAmenities(){
return amenityDAO.findAll();
}
代码(所需的SpringBootServletInitializer):
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SetiaAlamApplication.class);
}
}
application.properties:
# Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url = jdbc:mysql://ipaddress:3306/setiaalam?
useSSL=false&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.datasource.username = hidden
spring.datasource.password = hidden
# Hibernate Properties
# The SQL dialect makes Hibernate generate better SQL for the chosen
database
spring.jpa.properties.hibernate.dialect =
org.hibernate.dialect.MySQL5Dialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = update
答案 0 :(得分:-1)
好的,已解决问题。我该如何解决?
第1步 下载最新的Eclipse。
第2步 接下来,添加来自Eclipse Market的Spring Tool功能。请注意,如果找不到Eclipse Market,则需要添加1st。简单的Google会指导您如何操作。
第3步 然后添加Google Cloud Tool(来自Eclipse Market)。
第4步 添加完成后,创建一个新的Spring项目(通过Eclipse,我以前没有,但是使用spring.io)。
第5步 根据生成的单个主应用程序,根据Google App Engine标准的Google指南在pom.xml上更改所需的配置。
步骤6 完成后,创建一个简单的1控制器,该控制器仅返回单个String文本。本地部署-当然,在Jetty上工作后,将所有类一一移到这个新项目中。
重要说明 当然,如果您的项目(如我的项目)需要更多和更多的依赖关系(例如Google API,Hibernate),则需要手动将其添加到pom.xml中。 此外,为确保您会遇到Eclipse“无法更改动态Web模块构面”的问题,我遵循简单的指南,将项目文件org.eclipse.wst.common.project.facet.core.xml相应地更改为3.0 jst.web。
谢谢