Jetty에서 SPDY 프로토콜의 서버 푸시 지원과 관련된 API 인 사용자 정의 PushStrategy를 구현하려고합니다. PushStrategy에서 ServletContext에 액세스
public Set<String> apply(Stream stream, Fields requestHeaders, Fields responseHeaders);
그러나 내가 메서드 호출 내부의 ServletContext에 액세스해야하지만 난 그것을 액세스 할 수있는 방법을 모른다 :
나는 다음과 같은 방법을 구현한다.
나는 jetty.xml의에서 WebAppContext을 주입하는 방법을 조사하고 있습니다 :
<New id="pushStrategy" class="spdy.MyPushStrategy">
<Set name="webAppContext">
<Ref id="..." />
</Set>
</New>
문제는이 구성 단계는 jetty.xml의에 선언 된 서버 블록에 있다는 것이다 :
<Configure id="Server" class="org.eclipse.jetty.server.Server">....</Configure>
WebAppContext이 부두-web.xml을 구성하는 동안
<Configure id="WebAppContext" class="org.eclipse.jetty.webapp.WebAppContext">
난을 참조하는 방법을 모른다 이 파일의 기존 WebAppContext ID. 이 같은 Configuring a Specific WebApp Deployment에 설명 된 것과 XML 파일을 통해 WebAppContext
을 만들 때
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty-version}</version>
<configuration>
<stopPort>8888</stopPort>
<stopKey>quit</stopKey>
<jvmArgs>
-Xbootclasspath/p:${settings.localRepository}/org/mortbay/jetty/npn/npn-boot/${npn-version}/npn-boot-${npn-version}.jar
</jvmArgs>
<webAppConfig>
<jettyEnvXml>${basedir}/src/main/config/jetty-web.xml</jettyEnvXml>
</webAppConfig>
<jettyXml>${basedir}/src/main/config/jetty.xml</jettyXml>
<contextPath>/</contextPath>
</configuration>
이것은 작동하지 않습니다. 내 개체는 jetty.xml에서 만들어지고 jetty-web.xml에 구성된 webapp를 참조합니다! 업데이트 된 내용보기 –
spdy.MyPushStrategy 인스턴스의 setter가 호출되었지만 null 값이 매개 변수로 지정되었습니다. –
마지막으로 원하는 헤더를 추가하는 필터와 함께 작동합니다. –