2012-05-10 5 views

答えて

4

私はJetty/Tutorial/Embedding Jetty documentationを見ています。私は​​3210と呼んでいると思います。あなたは、いくつかの選択肢があります。

@Configuration

私のお気に入りのアプローチ(3.0以降)。 Javaを使用してすべてを構成できます!

@Configuration 
public class Jetty { 
    @Bean(initMethod = "start") 
    public Server server() { 
     Server server = new Server(8080); 
     server.setHandler(context()); 
     return server; 
    } 

    @Bean 
    public ServletContextHandler context() { 
     ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); 
     context.setContextPath("/"); 
     context.addServlet(servlet(), "/*"); 
     return context; 
    } 

    @Bean 
    public ServletHolder servletHolder() { 
     return new ServletHolder(helloServlet()); 
    } 

    @Bean 
    public HelloServlet helloServlet() { 
     return new HelloServlet(); 
    } 
} 

継承/あなたはJavaの豆の命名規則に従うことを、元のServletContextHandlerクラスを継承またはラップすることができます

を飾ります。もちろん、余分なクラスが必要ですが、JettyクラスはSpringに優しいクラスになります。あなたはそのようなラッパーを公開することさえできますか?

MethodInvokingFactoryBean

それはあまりにも低レベル思えるように私はこのアプローチを好みません。たくさんの、おかげで

<bean id="javaVersion" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
<property name="targetObject" ref="servletContextHandler"/> 
<property name="targetMethod" value="addServlet"/> 
<property name="arguments"> 
    <list> 
    <ref bean="yourServlet"/> 
    </list> 
</property> 
</bean> 
+0

グレート答え:基本的には、任意の引数を指定して任意のメソッドを呼び出してBeanを作成します。救助にJava Config! – HolySamosa

3

ちょうど春のファイル桟橋7に適応それはあなたにContextHandlerのを追加することが可能です...

<bean id="contexts" 
    class="org.eclipse.jetty.server.handler.ContextHandlerCollection" /> 

<context:property-placeholder location="src/main/resources/ws.properties" /> 

<!-- Manually start server after setting parent context. (init-method="start") --> 
<bean id="jettyServer" class="org.eclipse.jetty.server.Server" 
    destroy-method="stop"> 
    <property name="threadPool"> 
     <bean id="ThreadPool" class="org.eclipse.jetty.util.thread.QueuedThreadPool"> 
      <property name="minThreads" value="10" /> 
      <property name="maxThreads" value="50" /> 
     </bean> 
    </property> 
    <property name="connectors"> 
     <list> 
      <bean id="Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
       <property name="port" value="8181" /> 
      </bean> 
     </list> 
    </property> 
    <property name="handler"> 
     <bean id="handlers" class="org.eclipse.jetty.server.handler.HandlerCollection"> 
      <property name="handlers"> 
       <list> 
        <ref bean="contexts" /> 
        <bean id="defaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler" /> 
        <bean class="org.eclipse.jetty.servlet.ServletContextHandler" 
         p:contextPath="/${ws.context.path}"> 
         <property name="sessionHandler"> 
          <bean class="org.eclipse.jetty.server.session.SessionHandler" /> 
         </property> 
         <property name="servletHandler"> 
          <bean class="org.eclipse.jetty.servlet.ServletHandler"> 
           <property name="servlets"> 
            <list> 
             <bean class="org.eclipse.jetty.servlet.ServletHolder" 
              p:name="spring-ws"> 
              <property name="servlet"> 
               <bean 
                class="org.springframework.ws.transport.http.MessageDispatcherServlet" /> 
              </property> 
              <property name="initParameters"> 
               <map> 
                <entry key="contextConfigLocation" value="classpath:/spring-ws-context.xml" /> 
               </map> 
              </property> 
             </bean> 
            </list> 
           </property> 
           <property name="servletMappings"> 
            <list> 
             <bean class="org.eclipse.jetty.servlet.ServletMapping" 
              p:servletName="spring-ws" p:pathSpec="/*" /> 
            </list> 
           </property> 
          </bean> 
         </property> 
        </bean> 
        <bean class="org.eclipse.jetty.server.handler.RequestLogHandler" /> 
       </list> 
      </property> 
     </bean> 
    </property> 
</bean> 
関連する問題