创建Web项目
在MyEclipse下新建一个Web项目, File->New->Project->Web Project (Optional Maven Support)->Next.
进入New Web Project配置对话框, 四个选项:
1.Web Project Details
A.Project Name输入项目名称
B.Location 项目位置, 勾选默认位置即可-MyEclipse的默认工作区(default workspace)
C.Source folder源文件目录, 默认src
D.Web root folderweb根目录, 默认WebRoot
E.Context root URL上下文根URL, 部署之后访问的上下文路径, 即: http://hostaddress:port/context root url/
2.J2EE Specification Level
一个单选值, Java EE 5.0/J2EE 1.4/J2EE 1.3, 勾选5.0即可.
3.Maven
默认未勾选Add Maven Support(????Maven干啥的).
4.JSTL Support
如果2选择了5.0, 则默认添加JSTL 1.2; 否则, 自己勾选1.0或1.1. 这个用来添加Java标准标签库(Java Standard Tag Library, JSTL).
目录结构
src
源文件
WebRoot
web根目录
工程描述符
三个工程描述符: .classpath, .mymetadata, .project, 都是用xml格式描述的.
.classpath
类文件路径.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<!-- 源代码路径 -->
<classpathentry kind="src" path="src"/>
<!-- JDK运行时容器 -->
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
<!-- 自行添加的相关类库 -->
<classpathentry kind="lib" path="D:/workspace_MyEclipse/HelloWorld/WebRoot/WEB-INF/lib/struts2-core-2.1.8.1.jar"/>
<!-- 编译后的类文件.class目录 -->
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>
.mymetadata
<?xml version="1.0" encoding="UTF-8"?>
<!--
type 工程类型
name 工程名称
id 工程在workspace中的唯一标识
context-root上下文根路径, url的一部分
j2ee-spec JEEE版本
archive 打包后的war文件
-->
<project-module
type="WEB"
name="HelloWorld"
id="myeclipse.1338430140434"
context-root="/HelloWorld"
j2ee-spec="5.0"
archive="HelloWorld.war">
<!-- web根目录名称 -->
<attributes>
<attribute name="webrootdir" value="WebRoot" />
</attributes>
</project-module>
部署到web服务器时, 如果webrootdir的值不存在, 会报空指针异常.
java.lang.NullPointerException
at com.genuitec.eclipse.ast.deploy.core.DeploymentUtil.isSourceFolder(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.DeploymentUtil.copyContainer(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.DeploymentUtil.copyContainer(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.Deployment.resyncAll(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.ModuleDeployment.deployAsExplodedArchive(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.Deployment.deploy(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.EARDeployment.resyncAll(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.EARDeployment.deployAsExplodedArchive(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.Deployment.deploy(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.jobs.A.ā(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.jobs.A.run(Unknown Source)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
.project
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<!-- 项目名称 -->
<name>HelloWorld</name>
<comment></comment>
<projects>
</projects>
<!-- 编译器, 各构件或插件的加载方式 -->
<buildSpec>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<!-- 运行时需要的额外的eclipse插件 -->
<natures>
<nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature>
<nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>