Создание и запуск веб-службы RESTful на GlassFish - PullRequest
0 голосов
/ 06 февраля 2019

Я создал простой веб-сервис RESTful на сервере GlassFish и запустил его в соответствии с этим учебным пособием в IntelliJ IDE.Это работает нормально на основе предоставленной инструкции.У меня есть 2 дополнительных вопроса,

a.Учебное пособие использует приведенный ниже класс обслуживания,

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/helloworld")
public class HelloWorld {

    @GET
    @Produces("text/plain")
    public String getClichedMessage() {

        return "Hello World";
    }
}

Я могу получить доступ к нему из предоставленного URL,

http://localhost:8080/AppointmentManager_war_exploded/helloworld

После этого я добавляю новый класс в тот же каталог,

@Path("/")
public class App {

    @GET
    @Produces("text/plain")
    public String getMessage() {

        return "Hello, Berlin";
    }
}

Я ожидал увидеть сообщение "Hello, Berlin" в браузере с открывающим URL http://localhost:8080/AppointmentManager_war_exploded/, но вместо этого я получил сообщение об ошибке:

HTTP Status 404 - Not Found
type Status report

messageNot Found

descriptionThe requested resource is not available.

GlassFish Server Open Source Edition 5.0

Что такоепроблема здесь?

б.Как изменить часть URL AppointmentManager_war_exploded на что-то другое, скажем, appointment и т. Д.?Вкладка artifact в настройках проекта представлена ​​ниже,

enter image description here

Я отредактировал ее, но изменение не соответствовало ожидаемому.

Я изменил проект на maven build после урока, но проблема для этого не создана.Если кто-то заинтересован, вы можете попробовать тоже, поскольку это займет минуту, чтобы бежать.

Спасибо.

1 Ответ

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

Первый

Я ожидал увидеть сообщение "Hello, Berlin" в браузере с открывающего URL http://localhost:8080/AppointmentManager_war_exploded/,, но вместо этого получилпредоставлена ​​ошибка

В классе MyApplication, предоставленном в учебном пособии, вы также должны добавить свой новый класс:

@ApplicationPath("/")
public class MyApplication extends Application{
    @Override
    public Set<Class<?>> getClasses() {
        HashSet h = new HashSet<Class<?>>();
        h.add(HelloWorld.class);
        h.add(App.class);          // Add your new class here
        return h;
    }
}

Тогда вы сможете увидеть ожидаемую страницу на http://localhost:8080/AppointmentManager_war_exploded/

Второй

Как изменить часть URL AppointmentManager_war_exploded на что-то другое, скажем, назначение и т. Д.?

URLсодержит название вашего артефакта AppointmentManager_war_exploded.Этот артефакт автоматически копируется в каталог приложений Glassfish.Вы можете проверить glassfish\domains\domain1\applications\__internal.Просто измените его в окне структуры проекта:

enter image description here

Обновление

Не забудьте изменитьначальный URL в настройках приложения:

enter image description here

...