【发布时间】:2015-03-10 05:14:30
【问题描述】:
我尝试实现一个自定义的 PushStrategy,这是一个与 Jetty 内部 SPDY 协议的服务器推送支持相关的 API。
我实现了以下方法:
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中声明的Server块中:
<Configure id="Server" class="org.eclipse.jetty.server.Server">....</Configure>
WebAppContext 是在 jetty-web.xml 中配置的
<Configure id="WebAppContext" class="org.eclipse.jetty.webapp.WebAppContext">
我不知道如何在此文件中引用任何现有的 WebAppContext ID。
这是我的 maven 插件配置:
<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>
【问题讨论】: