Jump to: navigation, search

Difference between revisions of "Jetty/Howto/Spring"

< Jetty‎ | Howto
m
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{Jetty Howto
 
{{Jetty Howto
 
|introduction=
 
|introduction=
Jetty can be assembled and configured in code or with almost any IoC style framework including Spring.  The jetty-spring module is included in jetty@codehaus with some convenience classes and a handy Main method to run Jetty from Spring.
+
 
 +
{{Jetty Redirect|http://www.eclipse.org/jetty/documentation/current/frameworks.html#framework-jetty-spring}}
 +
 
 +
You can assemble and configure Jetty in code or with almost any IoC style framework including Spring.   
 +
 
 +
== Downloading the Jetty-Spring module ==
 +
 
 +
The jetty-spring module is included in jetty-hightide,  available at Codehaus, and also as a Maven artifact. This example illustrates a Maven download:
 +
 
 +
<source lang="java">
 +
wget --user-agent=other http://repo2.maven.org/maven2/org/mortbay/jetty/jetty-hightide/7.4.0.v20110414/jetty-hightide-7.4.0.v20110414.tar.gz
 +
tar xfz jetty-hightide-7.4.0.v20110414.tar.gz
 +
jetty-hightide-7.4.0.v20110414/
 +
</source>
 +
 
  
 
== Dependencies ==
 
== Dependencies ==
Line 9: Line 23:
 
You should download and install these dependencies in $JETTY_HOME/lib/spring
 
You should download and install these dependencies in $JETTY_HOME/lib/spring
  
== Configuration ==
+
<source lang="java">
The configuration of Jetty via Spring is simply a matter of calling the API as Spring beans.  The following is the default jetty-spring.xml file:
+
cd lib/spring
 +
wget --user-agent=other http://repo2.maven.org/maven2/org/springframework/spring/2.5.6/spring-2.5.6.jar
 +
wget --user-agent=other http://repo2.maven.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
 +
cd ../..
 +
</source>
 +
 
 +
== Using Spring to Configure Jetty ==
 +
Configuring Jetty via Spring is simply a matter of calling the API as Spring beans.  The following is the default jetty-spring.xml file:
 +
 
 
<source lang="xml">
 
<source lang="xml">
 
<beans>
 
<beans>

Latest revision as of 15:07, 23 April 2013



Introduction


You can assemble and configure Jetty in code or with almost any IoC style framework including Spring.

Downloading the Jetty-Spring module

The jetty-spring module is included in jetty-hightide, available at Codehaus, and also as a Maven artifact. This example illustrates a Maven download:

wget --user-agent=other http://repo2.maven.org/maven2/org/mortbay/jetty/jetty-hightide/7.4.0.v20110414/jetty-hightide-7.4.0.v20110414.tar.gz
tar xfz jetty-hightide-7.4.0.v20110414.tar.gz
jetty-hightide-7.4.0.v20110414/


Dependencies

As distributed, the jetty-hightide bundle does not include the spring dependencies:

  • spring-1.2.8.jar
  • commons-logging-1.0.4.jar

You should download and install these dependencies in $JETTY_HOME/lib/spring

cd lib/spring
wget --user-agent=other http://repo2.maven.org/maven2/org/springframework/spring/2.5.6/spring-2.5.6.jar
wget --user-agent=other http://repo2.maven.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
cd ../..

Using Spring to Configure Jetty

Configuring Jetty via Spring is simply a matter of calling the API as Spring beans. The following is the default jetty-spring.xml file:

<beans>
 
  <bean id="contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
 
  <bean id="Server" class="org.mortbay.jetty.spring.Server" init-method="start" 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="8080"/>
        </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"/>
          </list>
        </property>
      </bean>
    </property>
 
    <property name="beans">
      <list>
        <bean id="ContextDeployer" class="org.mortbay.jetty.spring.ContextDeployer">
          <property name="contexts" ref="contexts"/>
          <property name="contextsDir" value="contexts"/>
          <property name="scanInterval" value="5"/>
        </bean>
 
        <bean id="WebAppDeployer" class="org.eclipse.jetty.deploy.WebAppDeployer">
          <property name="contexts" ref="contexts"/>
          <property name="webAppDir" value="webapps"/>
          <property name="extract" value="true"/>
          <property name="defaultsDescriptor" value="etc/webdefault.xml"/>
        </bean>
 
        <bean class="org.eclipse.jetty.security.HashLoginService">
          <property name="name" value="Test Realm"/>
          <property name="config" value="etc/realm.properties"/>
          <property name="refreshInterval" value="0"/>
        </bean>
 
      </list>
    </property>
 
  </bean>
 
</beans>

Running Jetty with Spring

There are many ways to launch Spring, including the Jetty start.jar mechanism. The following command line starts the Jetty Spring config file including with the jetty-hightide distribution from codehaus:

  java -jar start.jar OPTIONS=Server,All,spring \
    start.class=org.mortbay.jetty.spring.Main \
    etc/jetty-spring.xml

This uses the jetty-spring Main class to load the Spring configuration file and join the resulting server.