Рестлет и Джерси сосуществуют вместе? - PullRequest
0 голосов
/ 23 января 2020

Я видел несколько примеров, таких как Использование Spring и Jersey вместе . Я работаю над сценарием, где у меня есть проект Джерси, который упакован в другую WAR. Я хочу переместить это в другую WAR, которая основана на фреймворке Restlet. Следующие обновления я сделал: 1) Добавил проект Джерси в POM как зависимость. 2) Добавлен файл конфигурации JerseyApplication. java

public class JerseyApplication extends Application {

@Override
public Set<Class<?>> getClasses() {
    final JAXRSResourceConfig instance = JAXRSResourceConfig.getInstance();
    return SetUtils.newSet(instance.getClasses());
}

}

Теперь есть два файла конфигурации. Один для загрузки ресурсов Джерси, который упоминался выше, и один, который присутствовал для рестлета. Следующим является файл конфигурации рестлета:

public class Application extends org.restlet.Application {
@Override
public void handle(final Request request, final Response response) {
    super.handle(request, response);
}

public Application(final Context context) {
    super(context);
}

@Override
public Restlet createRoot() {
    final Context context = getContext();
    final Router root = new Router(context);
    // Add JaxRS resources
    final JaxRsRestlet jaxRS = new JaxRsRestlet(context, getMetadataService());
    jaxRS.addClass(XYZ.class);
    return root;
}
}

3) Обновленный веб. xml:

    <context-param>
    <param-name>org.restlet.application</param-name>
    <param-value><Application.java PATH></param-value>
</context-param>

<!-- Restlet adapter -->
<servlet>
    <servlet-name>ServerServlet</servlet-name>
    <servlet-class>com.noelios.restlet.ext.servlet.ServerServlet</servlet-class>
    <init-param>
        <param-name>org.restlet.attribute.application</param-name>
        <param-value><PACKAGE_PATH></param-value>
    </init-param>
</servlet>

<!-- Jersey adapter -->
<servlet>
    <servlet-name>myservlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value><CLASS PATH></param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

Я хочу знать, возможно ли, чтобы оба проекта Restlet и Jersey могли сосуществовать вместе в упаковке WAR? Я знаю, что мы можем настроить несколько сервлетов. Заранее спасибо за любые предложения и предложения по этому вопросу.

1 Ответ

0 голосов
/ 16 февраля 2020

Я не вижу причин, по которым Рестлет и Джерси не сможет сосуществовать, у меня есть основанный на Рестлете бэкэнд со стандартным кодом сервлета, который работает просто хорошо. Все будет сводиться к конфигурации web.xml.

...