В настоящее время я использую Tomcat, чтобы поддерживать мой Backend вместе с моим API-интерфейсом Rest. Когда я хочу использовать мой Frontend, я просто запускаю Tomcat, который содержит Backend-Project, а затем я могу получить доступ к бэкэнду через Rest-API с помощью http-запросов. Теперь я подумал о том, чтобы избавиться от Tomcat и развернуть его как файл jar вместо файла войны и запустить его локально с помощью метода Main. Я сделал это так (Source):Запуск API Джерси-Остатка без использования контейнера в качестве банки
public class Main {
public static void main(String[] args) throws Exception {
ResourceConfig config = new DefaultResourceConfig(RestApi.class);
HttpServer server = HttpServerFactory.create("http://localhost:8080/", config);
server.start();
}
Отрывок из моего Rest-класса будет:
@Path("/schemas")
public class RestApi {
@GET
@Path("/hi")
public String dropHi() {
return "hi;
}
}
Запуск это основные работы, но по каким-то причинам до сих пор не может получить доступ Rest-Api. Когда я пытаюсь получить «привет», пытаясь достичь http://localhost:8080/api/schemas/hi
, в браузере ничего не происходит. Что может быть неправильным, делает ли он даже то, что я пытаюсь сделать? Идея состоит в том, чтобы запустить бэкэнд позже на сервере без использования Tomcat, просто запустив его как файл jar и получив доступ к нему через интерфейс, который вы запускаете локально в своей системе.
Спасибо, в первую очередь. Я думаю, что я что-то понял: Chrome говорит мне, что заголовок «Нет доступа-Контроль-Разрешить-Происхождение» присутствует на запрошенном ресурсе. Поэтому исходный «нуль» не имеет доступа ». Когда я использовал Tomcat, я добавил CORS в web.xml. Так что, возможно, это проблема, я должен как-то добавить CORS в настройки моего сервера, может быть? – testiguy
Как вы это делали в 'addRestServiceContainer() ', упомянутом в комментарии выше. – testiguy
Ровно! Добавьте его туда – darijan