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

来源:互联网 发布:淘宝流量统计工具 编辑:程序博客网 时间:2024/06/08 03:00

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
原创粉丝点击