想用jetty作为服务器去部署jfinal做的一个项目,要怎么弄?

super-d2 发布于 2014/07/03 10:50
阅读 4K+
收藏 2
最近用jfinal做一个项目,据本人了解,如果用tomcat去部署的话要去掉jetty-server.jar这个包,据从名字上看出来应该就是jetty-server的运行所用到的包,但是有个疑问就是如果我想用jetty作为服务器要怎么弄呢?目前比较紧急,求各位大侠协助下在下,不胜受恩感激,临表涕零~~
加载中
1
xinyin025
xinyin025

java -classpath classpath packagename.mainclass

应该是这样

2
JFinal
JFinal

   不建议使用 jetty 做为服务器,据个人使用经验,jetty 服务经常挂掉,换上 tomcat 后便非常稳定,tomcat 配置非常容易,修改 TOMCAT_HOME/conf/server.xml,找到 <Host> 标记,添加子标记 <Context path="" reloadable="false" docBase="/var/www/jfinal_com/webapp" />,这里的关键点有两个:

      1:永远不要将项目放在 TOMCAT_HOME/webapps 目录下面,因为如果server.xml 中再配置该项目后会将本项目加载两次,引发很多不解的问题

     2:项目的 context path 设置为 "",免去很多不必要的麻烦,减少代码量

   如果非要用 jetty,先去官网下载 jetty 解压后在 JETTY_HOME/contexts下面添加一个 xml 配置文件,主要配置参考如下:


<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/</Set>
  <Set name="resourceBase">/alidata/www/jfinal_com</Set>
  <Set name="extractWAR">false</Set>
  <Set name="copyWebDir">false</Set>
  <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>

  <!-- virtual hosts -->
  <Set name="virtualHosts">
    <Array type="String">
      <Item>www.jfinal.com</Item>
    </Array>
  </Set>
<Set name="sessionHandler">
    <New class="org.eclipse.jetty.server.session.SessionHandler">
      <Arg>
        <New class="org.eclipse.jetty.server.session.HashSessionManager">
          <Set name="storeDirectory">/alidata/www/jetty_session/jfinal_com</Set>
        </New>
      </Arg>
    </New>
</Set>
</Configure>

    无论哪种用法,记得删掉 jetty-server-8.1.8.jar,这个仅用于开发

super-d2
super-d2
回复 @94127276 : 现在直接放入jetty里面执行,还没出现过问题
七彩it
七彩it
回答的很详细
0
藏言
藏言

写个main执行下就可以了

public class Start {
 public static void main(String[] args) {
  JFinal.start("WebRoot", 80, "/demo", 5);
 }
}

 

 

返回顶部
顶部