2010-03-04 3 views
1

Je travaille avec jetty hightide vesion 7 actuellement comme un serveur autonome. J'ai un projet web simple avec quelques classes jsp et backing que je déploie actuellement dans une guerre non explosée dans le répertoire JETTY_HOME/webapps.déploiement à chaud simple application dans la jetée

Actuellement, la jetée capte facilement toute modification statique de jsp/html. Si je comprends bien, je peux configurer mon application afin que jetty ramasse toutes les modifications de classe sans redémarrer le serveur? J'ai actuellement dans ma jetée-web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> 

<!-- 
    This is the jetty specific web application configuration file. When 
    starting a Web Application, the WEB-INF/web-jetty.xml file is looked 
    for and if found, treated as a 
    org.eclipse.jetty.server.server.xml.XmlConfiguration file and is 
    applied to the org.eclipse.jetty.servlet.WebApplicationContext objet 
--> 

<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
<Call class="org.eclipse.jetty.util.log.Log" name="debug"> 
    <Arg>executing jetty-web.xml</Arg> 
</Call> 
<Set name="contextPath">/SimpleDynamicProject</Set> 

</Configure> 

J'ai aussi créé un SimpleDynamicProject.xml et le mettre dans JETTY_HOME/contextes. Ce fichier contient:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> 

<!-- 
    This is the jetty specific web application configuration file. When 
    starting a Web Application, the WEB-INF/web-jetty.xml file is looked 
    for and if found, treated as a 
    org.eclipse.jetty.server.server.xml.XmlConfiguration file and is 
    applied to the org.eclipse.jetty.servlet.WebApplicationContext objet 
--> 

<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 

<Set name="contextPath">/SimpleDynamicProject</Set> 
<Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/webapps/SimpleDynamicProject</Set> 
</Configure> 

Je suis pas sûr de savoir comment démarrer correctement jetée en mode débogage que j'ai lu était également nécessaire. J'ai essayé de démarrer le serveur avec:

java -Xdebug -jar start.jar OPTIONS=Server,jsp 

et

java -Ddebug -jar start.jar OPTIONS=Server,jsp 

C'est la première fois que je l'ai utilisé jetée, mais jusqu'à présent je l'aime vraiment.

Merci pour l'aide.

Répondre

0

Si vous voulez utiliser le plugin

<plugin> 
     <groupId>org.mortbay.jetty</groupId> 
     <artifactId>maven-jetty-plugin</artifactId> 
     <version>6.1.25</version> 
     <configuration> 
      <scanIntervalSeconds>10</scanIntervalSeconds> 
      <requestLog implementation="org.mortbay.jetty.NCSARequestLog"> 
       <!-- 
          This doesn't do anything for Jetty, but is a workaround for a 
          Maven bug that prevents the requestLog from being set. 
         --> 
       <append>true</append> 
      </requestLog> 
      <webApp>${basedir}/out/war/Spring2_5_6_war.war</webApp> 
     </configuration> 
    </plugin> 
+0

C'est en fait exactement ce que nous faisons sur notre équipe maintenant. C'est presque toute la configuration qui est nécessaire. En outre, nous utilisons Tapestry5 et cette combinaison de maven/jetty fonctionne extrêmement bien avec cela. – Casey

5

Vous devez définir un ContextDeployer avec un intervalle de balayage non nul:

<Call name="addLifeCycle"> 
    <Arg> 
    <New class="org.mortbay.jetty.deployer.ContextDeployer"> 
     <Set name="contexts"><Ref id="Contexts"/></Set> 
     <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set> 
     <Set name="scanInterval">1</Set> 
    </New> 
    </Arg> 
</Call> 

En ce qui concerne le débogage, je suppose que ce que vous avez à l'esprit est de connecter un débogueur à distance à l'aide JPDA. Pour cela, vous devrez définir l'option -agentlib:jdwp :

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 

Configurer votre débogueur IDE pour se connecter sur le port spécifié.

si la machine virtuelle cible est de 5,0 ou plus récent, -agentlib:jdwp est préférable sur les options -Xdebug et -Xrunjdwp qui sont encore pris en charge bien.

+0

Maven jetée Oh si je dois ajouter que mon projet fichier jetty.xml? J'essayais de le configurer à l'intérieur du répertoire de contexte du serveur de jetty sous myapp.xml par exemple. Merci pour les informations de débogage aussi! – Casey

+0

@Casey Oui je pense (en fait, j'utilise toujours Jetty de Maven donc je suis plus habitué à configurer le plugin maven mais la logique s'applique ici aussi). BTW, la façon courante de reconnaître une bonne réponse est l'upvoting ;-) –