我的应用程序需要几个接口实现,这些接口实现需要Jetty服务器来完成它们的工作。然而,这些接口的每个实现都不一定都是这样,因此Jetty服务器只是一个依赖项。
由于将整个jetty服务器与其所有日志记录、连接器和处理程序配置打包将是一件非常痛苦的事情,因此我希望使用Spring将服务器注入到这些实现中。我认为注入服务器类不是一个好主意,因为实现可能会停止服务器,即使在其他位置需要它。目前我注入的是空的
HandlerList
问题:这些处理程序可能会干扰其他处理程序,例如:实现一可能会为/foo注册一个处理程序,实现二也可能会注册一个处理程序。。。问题有人在这样的环境中使用过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" />
如果我需要一个空的
com.example.myapp.util.ioc.CreateHandlerListFactory
org.springframework.beans.factory.FactoryBean
这创造了一个新的
车手名单
车手名单
<constructor-arg>
<bean class="com.example.myapp.util.ioc.CreateHandlerListFactory">
<constructor-arg ref="jetty.handlerList"/>
</bean>
</constructor-arg>