Весенняя загрузка в стандартном приложении Google - REST API - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь запустить свой код на локальном симуляторе appengine с помощью команды mvn appengine: запустите, и ошибки нет, просто не удается найти RestController (например: Нет файланайдено для : / setiaalam / Facilities).

Кроме того, не отображается *1005* логотип при загрузке при запуске , поэтому я подозреваю, что мне нужно указать для него инициализацию сервлета?Он отлично работает в моей собственной среде Apache Tomcat Eclipse, но это работает только в том случае, если я ' запускаю ' основной класс.

Если быть более точным, я не создаю пользовательский сервлет, я просто хочу перенести его в Google Cloud AppEngine Standard - хотя ошибок нет, логотип запуска Spring Boot вообще отсутствует.Попытка получить доступ к любому из GET API, работающему локально с использованием Postmen, всегда возвращает 404. Нет проблем при попытке получить доступ к нему с предыдущего локального хоста Apache Tomcat.

Да, я следую принципу github: Ссылка на загрузку Github для Spring 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); 
 }
}

Приложение. Свойства:

# 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

1 Ответ

0 голосов
/ 18 февраля 2019

Хорошо, проблема исправлена.Как мне это исправить?

Шаг 1 Загрузите последнюю версию Eclipse.

Шаг 2 Далее следует добавить функцию Spring Tool из Eclipse Market.Пожалуйста, обратите внимание: если вы не можете найти Eclipse Market, вам нужно добавить это в первую очередь.Простой гугл подскажет вам, как это сделать.

Шаг 3 Затем добавьте Google Cloud Tool (из Eclipse Market).

Шаг 4 После добавления создайте новый проект Spring (через Eclipse, как я раньше не делал, но с помощью spring.io).

Шаг 5 На основе созданного единственного основного приложения измените необходимую конфигурацию в файле pom.xml в соответствии с руководством Google для Google App Engine Standard.

Шаг 6 После этого создайте простой 1 контроллер, который возвращает только один текст String.Разверните локально - на Jetty, конечно, после работы переместите все классы 1 на 1 в этот новый проект.

Важные замечания Конечно, если ваш проект, как мой, требует больше и большеТакие зависимости, как Google API, Hibernate, необходимо вручную добавить в pom.xml.Кроме того, наверняка вы столкнетесь с проблемой Eclipse «Невозможно изменить фасет Dynamic Web Module», я следую простому руководству по изменению файла проекта org.eclipse.wst.common.project.facet.core.xml соответственно до 3.0 дляJST.Web.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...