jetty 安装 运行 部署 出现PWC6345问题的原因

1. 首先从Jetty的官方网站http://wiki.eclipse.org/Jetty/Starting/Downloads下载最新的Jetty,上面有两个版本7.x和8.x,7.x是运行在JDK5及以上版本,8.x是运行在JDK6及以上版本,这里我选择了8.0.4版本。

2. 解压压缩包到指定目录,且将其目录路径定义为${JETTY_HOME}

3. 启动Jetty服务

3.1 进入${JETTY_HOME}目录,然后运行“Java -jar start.jar”,就可以启动Jetty server了

3.2 打开浏览器,访问http://localhost:8080,此时可以看到Jetty的欢迎页面了。

4. Jetty配置

4.1 Jetty的配置文件都是放在${JETTY_HOME}/etc目录下;

4.2 通过${JETTY_HOME}/etc/jetty-webapps.xml文件,可以看出Jetty中默认将所有的web app都放在了${JETTY_HOME}/webapps 目录下;

4.3 在Jetty包中默认带了一个test.war的应用,可以${JETTY_HOME}/webapps目录下找到这个文件,在启动Jetty服务的时候默认已经部署了test.war应用。对于test.war文件,Jetty还定义了context文件,放在${JETTY_HOME}/contexts/test.xml,其中将contextPath定义成了“/”,这就是为什么默认访问http://localhost:8080/的时候为什么是访问test应用的原因了。

5 部署新的web应用程序

5.1 对于war包的部署,只需要将war文件放到${JETTY_HOME}/webapps目录下,然后就可以通过浏览器直接访问了;

5.2 对于web应用程序目录的部署,此时可以将web应用程序目录复制到${JETTY_HOME}/webapps/<myapp>目录下,然后在${JETTY_HOME}/contexts/<myapp>.xml文件,其中内容如下:

<?xml version="1.0"  encoding="ISO-8859-1"?>  
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">  
<Configure class="org.eclipse.jetty.webapp.WebAppContext">  
  <Set name="contextPath">/myapp</Set>  
  <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/myapp</Set>  
</Configure> 

重新启动Jetty服务,访问http://localhost:8080/myapp就可以看到新部署web应用程序了。

本人把war包放到webapps目录下,运行java -jar start.jar时报错

org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required

摸索了半天终于找到原因了。

我的JDK安装在D盘,JAVA_HOME 也指向安装目录,系统的PATH也设置了D:\JDK\bin

但是安装JDK的时候,安装程序会往C盘的系统目录拷贝Java的可执行文件,其中包括 java.exe,而使用 java -jar start.jar 来启动 Jetty 时则优先使用的是系统目录下的 java.exe ,这样 Jetty 的 JSP 解析器就无法正确获取 JDK 的安装目录而导致此问题发生。

解决的办法,退出 Jetty ,在系统目录下搜索 java.exe ,删掉它并重启 Jetty 即可。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值