zoukankan      html  css  js  c++  java
  • maven集成SSM项目,jetty部署运行——搭建maven项目部署jetty试运行(一)

      今天闲来没事采用maven集成一个SSM框架来复习复习微笑,下面开始我的复习之旅,慢慢来,不着急,哈哈,不忙时候敲两下,整起来。

    工具为Eclipse,首先需要建立一个maven工程,file右键new--->maven Project

    点击next

    选中红色框部分,继续next

    填写完成后点击finish,创建项目如下:但是有两个问题需要解决,

    问题1.项目报错,错误出在index.jsp上,这个错误的原因在于项目中没有servelet-api,需要在pox.xml中添加相应的依赖即可解决:

    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
    </dependency>

    问题2.java resources 下的目录不完整,这个需要补充完整,补充方法如下;

    方式一;

    在项目名上右键,build path----->configure build path(或者项目右键Properties,选择java build path)出现的如下界面:

    将两个报错的missing删除remove掉,然后add folder,点击Create New Folder,选择项目根目录,出现如下最上层界面,如下:

    在Folder name 中填写src/main/java,然后finish,同样方法创建src/test/java,但是这种方法发现创建src/test/java文件夹后报错如下,且OK键为灰色不能够点击,故而不能创建成功

    方式二:java resources上右键new一个Source Folder如下创建相应包名,

    创建完成后

    不管方式一、还是方式二创建成功后都需要为期配置改变编译环境,如下点击OK即可,需要注意的是src/main/java选择的是项目名/target/classes,而src/test/java和src/test/resources(本项目不建这个包)选择的是项目名/target/test-classes。

    修改顺序—通过order and export 的up键,src/main/java...src/main/resources...src/test/java

    将Libraries,已入要用的JRE,方法如下,改变后如下:注意,我们在操作这一步的时候,经常会发现当我们引进了jre1.7,但是在maven项目右键update后,系统又重新回到了JRE System Library[JavaSE-1.5],这是因为需要在pom.xml 的build中增加插件配置如下:

    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.1</version>
    <configuration>
    <source>1.7</source>
    <target>1.7</target>
    </configuration>
    </plugin>
    </plugins>

    添加完成再次操作后update即可变为如下样式:

    此时如果index.jsp报错如下:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path,则更新一下maven工程。

    改变版本问题:修改web.xml的DTD头文件变成3.0版本——>工程名上右键属性——>project Facets——>修改Dynamic Web Module 2.3 为3.0,注意!!!此时会报错,如下:

    这样总是不能修改,把√去掉保存,发现项目结构变得不堪,又重新来过,好痛苦,折腾了好大一会,最后查看网络,搞定

    ===============================================以下摘自网络=====================================================

    参考http://www.cnblogs.com/bruceChan0018/p/6015119.html(尊重原创,多谢了,借鉴一下,如下一部分摘过来)

    1.调整项目的web.xml,将版本号统一修改为2.5/3.0

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    ......

    2.切换视图为Navigator(Eclipse-Window-showView)

      org.eclipse.jdt.core.prefs中,将jdk版本改为当前系统的jdk版本号

    复制代码
    eclipse.preferences.version=1
    org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
    org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
    org.eclipse.jdt.core.compiler.compliance=1.7
    org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
    org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
    org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
    org.eclipse.jdt.core.compiler.source=1.7
    复制代码

      org.eclipse.wst.common.component中,将jdk版本改为当前系统的jdk版本号

    <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.7.0">
        <wb-module deploy-name="ChiqAlgTest">
            <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
    ......

      org.eclipse.wst.common.project.facet.core.xml中,将jdk和java-web版本修改为系统jdk和2.5/3.0

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <fixed facet="wst.jsdt.web"/>
      <installed facet="java" version="1.7"/>
      <installed facet="jst.web" version="3.0"/>
      <installed facet="wst.jsdt.web" version="1.0"/>
    </faceted-project>
    复制代码

      3.修改完以上参数后,在facet选项中修改Dynamic Web Module为2.5/3.0,update project即可。

    ================================================以上摘自网络============================================================

    更新完后如下:

    如果最终,发现项目名字上报错有红叉,子文件中没有任何报错错则是缺少插件。

    <plugins> <plugin> <!-- 项目报红叉,下面子文件没有一个报红叉原因是缺少插件的配置项 -->
    <artifactId>maven-compiler-plugin</artifactId> <configuration> <target>1.7</target> <source>1.7</source> <encoding>UTF-8</encoding> </configuration> </plugin>
    </plugins>

    二、部署jetty试运行maven项目工程 

    首先,在pom.xml中加入jetty的插件

    <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.1.16.v20140903</version>
    </plugin>

    然后进行配置菜单run---->run configuration----->出现如下

    如果此时run 启动jetty service,并运行localhost:8080,会报错如下:

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

    此时是因为JRE没有配置,需要进行相关配置:

    配置好后,OK,run 启动jetty service,并运行localhost:8080,页面输出hello world。

    对应的pom.xml代码如下:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yusys.pro</groupId>
    <artifactId>NewsManagement</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>NewsManagement Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
    </dependency>
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    </dependency>
    <!-- 添加redis的jar 包 -->
    <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
    <dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
    </dependency>

    </dependencies>

    <build>
    <plugins> <plugin> <!-- 项目报红叉,下面子文件没有一个报红叉原因是缺少插件的配置项 -->
    <artifactId>maven-compiler-plugin</artifactId> <configuration> <target>1.7</target> <source>1.7</source> <encoding>UTF-8</encoding> </configuration>
    </plugin>
    <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.1.16.v20140903</version>
    </plugin>
    </plugins>
    <finalName>NewsManagement</finalName>
    </build>
    </project>

    对应的web.xml代码如下:

    <!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 3.0//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd" >

    <web-app>
    <display-name>Archetype Created Web Application</display-name>
    </web-app>

  • 相关阅读:
    Algs4-1.5.9画树
    Algs4-1.5.7实现QuickFindUF类和QuickUnionUF类
    *Algs4-1.5.6quick-union的运行时间-(未解决)
    *Algs4-1.5.5quick-find的运行时间-(未解决)
    Algs4-1.5.3使用加权quick-union算法完成练习1.5.1
    Algs4-1.5.4给出id[]和sz[]的内容与次数
    深入了解RabbitMQ工作原理及简单使用
    python 字符串、数字转换为bytes和bytes转换为字符串
    django html模板的语法
    完美的分布式监控系统——普罗米修斯
  • 原文地址:https://www.cnblogs.com/xiaoyao-001/p/8260734.html
Copyright © 2011-2022 走看看