2011-08-11 4 views
0

Spring에서 Embedded Tomcat을 구성하고 설정하는 방법이 있습니까? Jetty 7을 통해 웹 컨테이너로 Jetty를 시작하는 독립형 Java 응용 프로그램을 만들었고 JUnit 테스트가 HTTPInvoker를 통해 BO를 호출 할 수있게되었습니다.Spring을 통해 임베디드 Tomcat을 설정하고 시작할 수 있습니까? 부두로 괜찮습니까?

저에게 Tomcat을 사용하여 코드를 작성해야합니다.

봄 XML 파일

<!-- Manually start server after setting parent context. (init-method="start") --> 
<bean id="jettyServer" 
     class="org.eclipse.jetty.server.Server" 
     init-method="start" 
     destroy-method="stop"> 
    <property name="threadPool"> 
     <bean id="ThreadPool" 
       class="org.eclipse.jetty.util.thread.ExecutorThreadPool"> 
      <constructor-arg value="0" /> 
      <!--property name="corePoolSize" value="${jetty.server.thread.pool.core.pool.size}"/> 
      <property name="maximumPoolSize" value="${jetty.server.thread.pool.max.pool.size}"/--> 
     </bean> 
    </property> 
    <property name="connectors"> 
     <list> 
      <bean id="Connector" 
        class="org.eclipse.jetty.server.nio.SelectChannelConnector" 
        p:port="${jetty.server.port}" 
        p:maxIdleTime="${jetty.server.max.idle.time}" 
        p:acceptors="${jetty.server.acceptor.num}" 
        p:confidentialPort="${jetty.server.ssl.port}" /> 
     </list> 
    </property> 

    <property name="handler"> 
     <bean class="org.eclipse.jetty.server.handler.HandlerCollection"> 
      <property name="handlers"> 
       <list> 
        <bean class="org.eclipse.jetty.servlet.ServletContextHandler"> 
         <property name="contextPath" value="/"/> 
         <property name="sessionHandler"> 
         <bean class="org.eclipse.jetty.server.session.SessionHandler"/> 
         </property> 
         <property name="resourceBase" value="."/> 
         <property name="servletHandler"> 
         <bean class="org.eclipse.jetty.servlet.ServletHandler"> 
          <property name="servlets"> <!-- servlet definition --> 
          <list> 
          <!-- default servlet --> 
          <bean class="org.eclipse.jetty.servlet.ServletHolder"> 
           <property name="name" value="DefaultServlet"/> 
           <property name="servlet">          
            <bean class="org.springframework.web.servlet.DispatcherServlet"/> 
           </property> 
           <property name="initParameters"> 
           <map>           
            <entry key="contextConfigLocation" value="classpath:config/DefaultServlet-servlet.xml" /> 
           </map> 
           </property> 
          </bean> 
          </list> 
          </property> 
          <property name="servletMappings"> 
          <list><!-- servlet mapping --> 
          <bean class="org.eclipse.jetty.servlet.ServletMapping"> 
           <property name="pathSpecs"> 
           <list><value>/</value></list> 
           </property> 
           <property name="servletName" value="DefaultServlet"/> 
          </bean> 
          </list> 
          </property> 
         </bean> 
         </property> 
        </bean> 

        <bean class="org.eclipse.jetty.server.handler.RequestLogHandler"> 
         <property name="requestLog"> 
          <bean class="org.eclipse.jetty.server.NCSARequestLog"> 
           <constructor-arg value="${jetty.server.log.dir}/jetty-yyyy_mm_dd.log"/> 
           <property name="extended" value="false"/> 
          </bean> 
         </property> 
        </bean> 
       </list> 
      </property> 
     </bean> 
    </property> 
</bean> 

DefaultServlet-servlet.xml에

<!-- This default handler takes care of each of the services enumerated below --> 
    <bean id="defaultHandlerMapping" 
      class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> 

    <bean id="helloService" class="com.company.ws.bo.HelloServiceImpl"/> 

    <!-- SpringHTTP Service Exposure --> 

    <bean name="/HelloService" 
      class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter" 
      lazy-init="true"> 
      <property name="service" ref="helloService" /> 
      <property name="serviceInterface" 
        value="com.company.ws.bo.IHelloService" /> 
    </bean> 
+0

이 도움이 될 수 http://stackoverflow.com/questions/640022/howto-embed-tomcat-6 – FUD

답변

1

톰캣 (7) 임베디드 서버로 사용할 수 있습니다. 내가 아는 한 특별한 봄 지원은 없지만 스프링 응용 프로그램에서 바람둥이를 시작하려면 특별한 봄 지원이 필요하지 않습니다.

@see : this blogthis (german)

관련 문제