私のアプリケーションには、Jetty サーバーを必要とするいくつかのインターフェイスの実装が必要です。ただし、これらのインターフェースのすべての実装で必ずしもそうであるとは限らないため、Jetty サーバーは依存関係にすぎません。
Jetty サーバー全体をすべてのロギング、コネクター、およびハンドラー構成でラップするのは非常に面倒なので、Spring を使用してこれらの実装にサーバーを注入したいと考えています。別の場所でサーバーが必要な場合でも、実装によってサーバーが停止する可能性があるため、Server クラスを注入することはお勧めできません。現在、これらの実装に空のHandlerList
クラスを注入し、それらの問題を回避するためにハンドラーを登録しています。
問題: これらのハンドラーは他のハンドラーと干渉する可能性があります。そのような環境で Jetty を使用した人はいますか? そして、この問題はどのように解決できますか?
私の問題を明確にするための私のXML:
<bean id="jetty" class="org.eclipse.jetty.server.Server" destroy-method="stop">
<property name="connectors">
<list>
<bean class="org.eclipse.jetty.server.bio.SocketConnector">
<property name="host" value="10.8.0.46" />
<property name="port" value="9999" />
</bean>
</list>
</property>
<property name="handler">
<bean class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
<list>
<ref bean="jetty.handlerList" />
<bean class="org.eclipse.jetty.server.handler.RequestLogHandler">
<property name="requestLog">
<bean class="org.eclipse.jetty.server.NCSARequestLog">
<constructor-arg value="${jetty.logfile}" />
<property name="extended" value="false"/>
</bean>
</property>
</bean>
</list>
</property>
</bean>
</property>
<property name="sendServerVersion" value="false" />
</bean>
<bean id="jetty.handlerList" class="org.eclipse.jetty.server.handler.HandlerList" />
空が必要な場合は、指定された 内に新しいを作成する aのHandlerList
ようなものを使用します。com.example.myapp.util.ioc.CreateHandlerListFactory
org.springframework.beans.factory.FactoryBean
HandlerList
HandlerList
<constructor-arg>
<bean class="com.example.myapp.util.ioc.CreateHandlerListFactory">
<constructor-arg ref="jetty.handlerList"/>
</bean>
</constructor-arg>