我目前正在使用jetty hightide vesion 7作为独立服务器。我有一个简单的Web项目,其中包含一些jsp和支持类,我目前正在未爆炸的战争中部署到JETTY_HOME / webapps目录。
目前,jetty很容易接受任何静态的jsp / html更改。如果我理解正确,我可以配置我的应用程序,以便jetty将在不重新启动服务器的情况下获取任何类更改?我目前在我的jetty-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>
我还创建了一个SimpleDynamicProject.xml并将其放在JETTY_HOME / contexts中。该文件包含:
<?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>
我也不确定如何在调试模式下正确启动Jetty,我也需要这样做。我尝试使用以下命令启动服务器:
java -Xdebug -jar start.jar OPTIONS=Server,jsp
和
java -Ddebug -jar start.jar OPTIONS=Server,jsp
这是我第一次使用码头,但到目前为止我真的很喜欢它。
感谢您的帮助。
答案 0 :(得分:5)
您需要定义一个非零扫描间隔的ContextDeployer:
<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>
关于调试,我想您的想法是使用JPDA连接远程调试器。为此,您需要设置-agentlib:jdwp
选项 1 :
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
配置IDE调试器以在指定端口上进行连接。
1 如果目标VM为5.0或更高版本,-agentlib:jdwp
优先于-Xdebug
和-Xrunjdwp
选项仍然受支持。 子>
答案 1 :(得分:0)
如果你想使用jetty maven插件
<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>