В моем ServletFilter я хочу использовать конкретный API причала, открытый в реализации HttpServletRequest.Как использовать org.eclipse.jetty.server.Request в webapp?
Я начал это так:
final Request jettyRequest = Request.getBaseRequest(request)
Если я хочу, чтобы избежать ClassNotFoundException, я должен добавить артефакт Пристань-сервера для моих зависимостей Maven. Но если я это сделаю, getBaseRequest вернет null, потому что «request instanceof Request» возвращает false вместо true.
Это, безусловно, связано с конфликтом между загрузчиками причалов и приложений, потому что оба они загрузили класс org.eclipse.jetty.server.Request. Я попробовал несколько конфигураций, но мне не удалось заставить класс Request работать с моим webapp без добавления зависимости в WEB-INF/lib, что вызывает проблему с классом.
Мое приложение запускается с «МВН причалу: вводного раздвоенным» и настроен так:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty-version}</version>
<configuration>
<webAppSourceDirectory>${project.build.directory}/${project.name}</webAppSourceDirectory>
<systemProperties>
<force>true</force>
</systemProperties>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webAppConfig>
<contextPath>/</contextPath>
</webAppConfig>
<jettyXml>../jetty.xml,../jetty-ssl.xml,../jetty-https.xml</jettyXml>
<jvmArgs>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -Xbootclasspath/p:${settings.localRepository}/org/mortbay/jetty/alpn/alpn-boot/${alpn-version}/alpn-boot-${alpn-version}.jar</jvmArgs>
</configuration>
</plugin>
Любая помощь будет оценен по достоинству!
Зачем вам нужен доступ к внутренний объект '' запрос' Jetty? (этот объект может быть изменен при каждой выпуске Jetty) –
Я работаю над экспериментальной поддержкой поддержки сервера в веб-приложении, которое нуждается в API для конкретного сервера. На Jetty я хочу получить доступ к API PushBuilder из класса Jetty Request. –