Можно ли настроить и запустить встроенный Tomcat через Spring?Хорошо с Jetty? - PullRequest
0 голосов
/ 11 августа 2011

Есть ли способ настроить и настроить Embedded Tomcat весной?С Jetty 7 я так легко могу создать отдельное Java-приложение, которое запустит Jetty в качестве веб-контейнера, и, наконец, JUnit test может вызывать BO через HTTPInvoker.

Мне кажется, мне нужно написать код, чтобы сделатьтак с помощью Tomcat?

XML-файл Spring

<!-- 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>

1 Ответ

1 голос
/ 11 августа 2011

Tomcat 7 можно использовать как встроенный сервер.Насколько я знаю, специальной поддержки пружин нет, но вам не нужна специальная поддержка пружин, чтобы запускать кота из приложения пружины.

@ См .: этот блог и это (немецкий)

...