Jetty啟動時不能修改 js等靜態檔案的解決
阿新 • • 發佈:2019-01-06
Jetty啟動後,如果修改javascript檔案,將不能儲存,使除錯很麻煩。這是因為使用了CACHE,JETTY說是WINDOWS下的一個限制。可以通過如下方法修正:
解壓出jetty.jar中的org/mortbay/jetty/webapp/webdefault.xml檔案,將這一選項由true改為false,另存到src/main/resources目錄,或者其它自選目錄。
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>true</param-value> <!-- change to false -->
</init-param>
把修改後的webdefault.xml檔案跟pom.xml放在一起
修改pom.xml裡的Jetty Plugin的配置,加入webdefault.xml
解壓出jetty.jar中的org/mortbay/jetty/webapp/webdefault.xml檔案,將這一選項由true改為false,另存到src/main/resources目錄,或者其它自選目錄。
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>true</param-value> <!-- change to false -->
</init-param>
把修改後的webdefault.xml檔案跟pom.xml放在一起
修改pom.xml裡的Jetty Plugin的配置,加入webdefault.xml
...
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.7</version>
<configuration>
<contextPath>/</contextPath>
<webDefaultXml>webdefault.xml</webDefaultXml>
...
</configuration>
...
</plugin>
...
附。。。在專案中用到的Jetty用Java程式碼Call Jetty啟動的方法
import org.mortbay.jetty.Connector; import org.mortbay.jetty.Server; import org.mortbay.jetty.nio.SelectChannelConnector; import org.mortbay.jetty.webapp.WebAppContext; public class JettyStarter { public JettyStarter() { } public static void main(String[] args) { try { Server server = new Server(); Connector connector = new SelectChannelConnector(); connector.setPort(9999); server.setConnectors(new Connector[] { connector }); WebAppContext webapp = new WebAppContext(); webapp.setContextPath("/"); webapp.setResourceBase("./src/main/webapp"); webapp.setDefaultsDescriptor("./webdefault.xml"); server.setHandler(webapp); server.start(); server.join(); } catch (Exception e) { e.printStackTrace(); } } }