Netbeans не создает ApplicationConfig.java при создании новой веб-службы RESTful

У меня есть корпоративное приложение, которое я разрабатывал в Netbeans, и теперь я пытаюсь добавить некоторые веб-службы RESTful в модуль -war. Проблема, с которой я столкнулся, заключается в том, что когда я использую функцию Netbeans для создания веб-служб, класс ApplicationConfig.java не создается.

Все примеры и руководства, которые я нашел в Интернете, объясняют, что Netbeans автоматически сгенерирует класс ApplicationConfig.java, расширяющий Application, и, отредактировав аннотацию @ApplicationPath в этом классе, я могу настроить URI, по которому будут отображаться веб-службы. достижимый. И на самом деле, если я создаю новое приложение Java EE с нуля, а затем вызываю New -> RESTful Web Services из Patterns, это работает именно так. Но когда я пробую это с разрабатываемым мной проектом Netbeans, ApplicationConfig.java не создается.

Мои вопросы:

1) Есть идеи, почему это происходит? Ошибка Netbeans? Существуют ли известные обстоятельства, при которых Netbeans не создает ApplicationConfig?

2) Могу ли я просто создать ApplicationConfig.java вручную? Я видел примеры (не с Netbeans), в которых используется пустой класс ApplicationConfig, который ничего не делает, кроме предоставления места для размещения аннотации @ApplicationPath, позволяющей настроить эту часть URI. Если я это сделаю, не запутается ли Netbeans?

3) Я вижу, что когда Netbeans создает этот класс, он включает код, который переопределяет метод Application.getClasses. Выглядит достаточно просто, чтобы вручную создать собственный код, который будет делать то же самое, что и автоматически сгенерированный код. Оно мне нужно?

Подробная информация о моем окружении:

  • Версия продукта: IDE NetBeans 8.1 (сборка 201510222201)
  • Обновления: IDE NetBeans обновлена ​​до версии NetBeans 8.1 с исправлением 1
  • Java: 1.8.0_92; 64-разрядная серверная виртуальная машина Java HotSpot (TM) 25.92-b14
  • Среда выполнения: Java (TM) SE Runtime Environment 1.8.0_92-b14
  • Система: Windows 7 версии 6.1, работающая на amd64; Cp1252; en_US (nb)
  • Тип проекта: приложение Java EE 7
  • Сервер: Wildfly 9.0.2

Спасибо!

Дункан


person Duncan    schedule 05.05.2016    source источник


Ответы (4)


Да, вы можете создать его вручную, но вы должны создать его в том же пакете с вашими WebServicesClasses, например:

import java.util.Set;
import javax.ws.rs.core.Application;

@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new java.util.HashSet<>();
        addRestResourceClasses(resources);
        return resources;
    }
    private void addRestResourceClasses(Set<Class<?>> resources) {
        //add all resources classes
        resources.add(jaca.server.webservice.PersonWebService.class);
    }
}

Очистите и соберите свой проект или перезапустите netbeans, потому что в первый раз не работает.

person alexcornejo    schedule 15.05.2016
comment
Да, это было давно, но я думаю, что это именно то, что я сделал. Но я должен сказать, что ответ, включающий перезапуск вашего netbeans, потому что в первый раз не работает, заставляет меня задаться вопросом, взялась ли Microsoft за разработку. Это то, на что разработчики должны обратить внимание. - person Duncan; 28.04.2017

NetBeans также не создавал ApplicationConfig.java для меня. Дело в том, что я создал проект веб-приложения, затем добавил свои ресурсы (операции REST).

Однако если я создаю проект веб-приложения и добавляю «Новые веб-службы RESTful из шаблонов» перед добавлением собственных ресурсов, тогда он автоматически создает для меня ApplicationConfig.

person EricG    schedule 22.06.2017

Не уверен, что это по-прежнему актуально, но у меня была та же проблема с Netbeans 8.2, и после долгих перебоев мне удалось получить файл ApplicationConfig.java, автоматически созданный путем изменения имени проекта. Поэтому я предполагаю, что если вы создадите проект в первый раз и попытаетесь удалить и создать проект с тем же именем, он не создаст файл. Надеюсь, это кому-то поможет.

person Vicente Fontanella    schedule 05.12.2018

NetBeans добавляет некоторую подсказку в имя класса после добавления аннотаций, там он должен дать вам возможность добавить класс ApplicationConfig.java, а также другие параметры, связанные с Джерси.

person user3658701    schedule 27.04.2017