IntellijIdea创建Maven-Struts2的web项目

Intellij IDEA 2016.2.5 创建Maven Struts2的Web项目

最近在自学Java的SSH框架,因为之前使用Android Studio 开发对Intellij系列的IDE比较熟悉,而且Intellij系列的IDE确实比Eclipse要方便一些,所以还是选定Intellij IDEA作为Java后端开发的IDE。
由于之前没有使用Maven构建过项目,而且Struts的项目也没有进行实际的演练,所以在创建Maven struts2项目时走了一些弯路,所以在此记录一下正确的Maven Struts2项目的创建过程。

该过程省略了tomcat server的配置过程,而且由于Intellij IDEA自带了Maven所以此处也省略了Maven的安装配置过程。

文章部分参照了Intellij IDEA 配置最简单的maven-struts2环境的web项目. 同时针对自己在创建过程中出现的一些问题以及相应的解决做了一下记录。


新建一个Maven项目

主要是填写Project的名字以及Module的名字之类的。其他的都不用操作。
选择File-New-New Project并选择Maven

下一步填写GroupIdArtifactId.(maven通过GroupId跟ArtificatId来唯一确认一个maven项目)

下一步,填写创建的Project的名字(以及默认Module的名字)

至此项目已经创建完成,下面会进行一些相关的配置。

配置pom.xml

由于maven使用pom.xml(POM stands for “Project Object Model”)来管理项目,而且我们要创建Struts2的web项目,所以此处需要在pom.xml当中添加Struts2的依赖。
如果不太清楚Struts2的GroupId跟ArtificatId,可以直接取maven仓库搜索。例如:

然后拷贝相应的配置到pom.xml当中,如图:

如果已经开启了Import Maven Projects automatically的话,那么maven会自动将Struts2依赖包下载到本地(具体位置可以参照Maven的Settings.xml当中localRepository的配置)。

配置Web相关内容

  1. 添加Facet
    首先需要添加web支持,在Project Structure(可以通过Ctrl+Alt+Shift+S打开)当中,选中Facets条目,并点击其中的+号, 之后选择Web。如图:
  2. 添加Artifact
    将之前创建的Module作为一个Artifact添加进项目当中:

    添加完成后,默认情况下应该如图:

    此时,如果在Available Elements那里的first_maven_struts的类库并没有添加到Output当中去,那么可以双击first_maven_struts将其添加到output当中去,添加完成后应该是如下的样子(即: 在WEB-INF/lib下面将会包含之前在first_maven_struts当中的所有类库):

  3. 配置web.xml
    在web.xml当中配置过滤器信息:

  4. 配置struts2
    首先需要添加一个struts2的配置文件:

    注意:此处应该也可以直接自己new一个xml文件,然后添加相应的配置。
    添加完struts.xml之后,先使用最简单的配置如下:

    即: 配置访问根路径时,返回index.jsp的内容。所以我们需要一个index.jsp文件。由于/index.jsp这儿的路径是相对于web目录来讲的,所以我们在web文件夹里面创建一个index.jsp文件:

    然后在index.jsp当中随便添加一点儿内容,方便我们之后部署完成之后查看是否是访问的该页面:

配置Tomcat Server相关信息

至此,web已经配置完成,只需要配置并部署到tomcat server当中运行查看效果即可。
点击Run-Edit Configurations,打开配置对话框,在该对话框中点击绿色的+号添加一个tomcatserver:

为该server起一个名字,由于我们是在部署first_maven_struts所以此处将其命名为first_maven_struts

上面的这些操作只是添加了一个tomcat server,并没有指定tomcat server运行时需要部署哪个Artifact,所以此处需要添加一下之前我们定义过的Artifact.

添加完成之后:

需要注意的是,这儿有一个Application Context选项,默认是/,可以通过更改这个值来更改实际需要访问的URL路径的前缀。 例如此处假设更改为/default,那么访问first_maven_struts里面的URL的默认前缀是/default,即之前需要访问的路径假设为http://localhost:8080/aa, 那么现在需要访问http://localhost:8080/default/aa才可以。

上面的配置都完成之后,点击Run菜单,然后选择刚刚创建的first_maven_struts tomcat server即可启动tomcat server并将first_maven_struts部署到server当中。如果看到IDEA的日志输出: Artifact is deployed successfully那么说明该应用已经正常部署成功。

之后使用浏览器访问http://localhost:8080即可打开我们之前创建的index.jsp对应的内容。


创建过程中遇到的一些问题与解决

  1. 部署时出现错误,查看日志:

    查看tomcat的localhost日志发现:

    通过日志发现是ClassNotFoundException,也就是class未找到。

    出现该问题大多数情况下是因为我们使用的lib并没有exported到最终的out当中去,即在
    当中双击将需要导出的lib都添加到output当中去。

  2. 部署后打开页面一直是空白
    通过查看日志发现没有出现错误,但是查看event日志

    会发现,connected to server之后并没有应用程序的部署信息。所以实际上并没有运行任何应用,访问时也就没有任何的输出了。

    该问题一般情况下是忘记了在Run Configurations当中配置deployment,只需要添加我们之前配置过的Artifact即可:

其他问题待补充。

你可能感兴趣的:(java后端)