В моем ServletFilter я хочу использовать определенный API-интерфейс причала, представленный в реализации HttpServletRequest.
Я запускал так:
final Request jettyRequest = Request.getBaseRequest(request)
Если я хочу избежать ClassNotFoundException, я должен добавить артефакт jetty-server в мои зависимости maven. Но если я это сделаю, getBaseRequest вернет null, потому что 'request instanceof Request' вернет false вместо true.
Это, безусловно, связано с конфликтом между загрузчиками классов причала и приложения, потому что оба они загрузили класс org.eclipse.jetty.server.Request. Я попробовал несколько конфигураций, но мне не удалось сделать класс запроса доступным для моего веб-приложения без добавления зависимости в WEB-INF/lib, что вызывает проблему с путем к классам.
Мое приложение запускается с помощью "mvn jetty:run-forked" и настраивается следующим образом:
<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>
Любая помощь будет оценена!
Request
Jetty? (этот объект может меняться с каждым выпуском Jetty) - person Joakim Erdfelt   schedule 08.04.2015