jetty와 함께 사용되는 경우 웹 응용 프로그램 (BaseX)을 확장하기 위해 독립형 필터를 작업하고 있습니다. 목표는 응답이 전송 될 때 몇 가지 추가 자원을 밀어 넣는 것입니다. webapp는 어떤 리소스를 푸시해야하는지 정의합니다.독립 실행 형 푸시 필터 : jetty.server.request 찾을 수 없음
임베디드 부두에서는 모든 것이 잘됩니다. 부두에 BaxeX 루게릭 병 서블릿을 배포하고 jettx로 시작하는 때 : 갈래 실행할,이 얻을 :
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.basex</groupId>
<artifactId>basex-jetty-push-filter</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>basex-jetty-push-filter</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jetty.version>9.4.6.v20170531</jetty.version>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-annotations</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlets</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-alpn-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>http2-common</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>http2-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>${jetty.version}</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<!-- http://maven.apache.org/plugins/maven-compiler-plugin/ -->
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
...
:
이 필터의 pom.xml 파일입니다
java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Request
at org.basex.http2.BaseXJettyPushFilter.doFilter(BaseXJettyPushFilter.java:48)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
... 여기에 의존성으로로드하고 있습니다 :
<parent>
<groupId>org.basex</groupId>
<artifactId>basex-parent</artifactId>
<version>9.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<name>BaseX API</name>
<dependencies>
<dependency>
<groupId>org.basex</groupId>
<artifactId>basex</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.basex</groupId>
<artifactId>basex-jetty-push-filter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>net.xqj</groupId>
<artifactId>basex-xqj</artifactId>
</dependency>
<dependency>
<groupId>org.xmldb</groupId>
<artifactId>xmldb-api</artifactId>
</dependency>
...
왜 내가 w 안에서 서버 클래스에 액세스 할 수 없는지 분명합니다. ebapp! webapp은 주위 서블릿 컨테이너에 의존해서는 안되기 때문에 변경 될 수 있습니다.
그렇기 때문에 필자는 독립형 필터를 구현했지만 어떻게 든 여전히 server.Request 클래스에 액세스 할 수 없습니다. Jetty의 PushCacheFilter도 jetty.request 클래스를 사용합니다. 가능해야합니다! 이
가 어떻게이 문제를 해결할 수 https://github.com/BodoWissemann/basex-jetty-push-filter : 여기
필터입니까? 나는 붙어 :(들으 많은
보도