最近开始学习服务端开发,第一课就是启动一个web项目,但是我向来总卡在配置这一关,这次又踩了一些坑,最近事情很多但又怕自己以后忘了,所以简单记录一下。

需要的先准备的东西:

  1. jdk8(不要9以上,可能会出一些其他问题)

下载:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

  1. Maven

下载:https://maven.apache.org/download.cgi
安装:https://www.cnblogs.com/Milburn/p/13655369.html

  1. IEDA

下载:https://www.jetbrains.com/idea/download

  1. MySQl

下载:https://dev.mysql.com/downloads/mysql/

  1. tomcat-8

下载:https://tomcat.apache.org/download-80.cgi
安装:https://www.cnblogs.com/ludadong/p/12833698.html

顺便放了下我用到的两个安装博客,其余的大家可以自己搜搜。

接下来是遇到的问题:

  1. Error:NB:JAVA_HOME should point to a JDK not a JRE
    安装完maven后,通过“maven -version”在命令行查看是否安装完成时(已配置好环境变量),显示了这个错误,而我反复检查我的“%JAVA_HOME%”和jdk都是正常的,“java -version”也可以正常显示,并多方搜索,参考了这篇博客,但是不论我怎么改echo依旧会输出带分号的路径。
    最终是怎么解决的呢?当时太晚了我就睡了,听舍友说她有一个bug关了机睡一觉起来就好了,我很怀疑,但还是关了机。第二天打开,cmd输入“maven -version”,ok,没bug了。正常显示版本了。
    人 间 迷 惑。

  2. tomcat点击startup时乱码
    啊这是一个小问题,打开文件C:\apache-tomcat-8.5.51\conf\logging.properties,把加粗的这里
    java.util.logging.ConsoleHandler.level = FINE
    java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
    java.util.logging.ConsoleHandler.encoding = UTF-8
    改成GBK

  3. 启动mvn package时报错:(mvn package是什么下面会说)
    Cannot resolve net.sourceforge.cglib:com.springsource.net.sf.cglib:2.1.3 Cannot resolve org.apache.commons:com.springsource.org.apache.commons.logging:1.1.1
    这个是好像是有两个东西没下载下来,改了mirror就好了。在安装完maven的时候,要先进行这么一个操作:
    找到文件:E:\apache-maven-3..\conf\settings.xml,拷贝到C:\Users\你的用户.m2,然后增加一个镜像:

 <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
</mirror>

我一直以为我加了,我确实加了,但是放错位置了。。。!
正确的位置是这里:
在这里插入图片描述
一定要放在<mirror></mirror>里面!且注释外面!
我当时没仔细看头脑一热放在了注释<!---->里面。。

  1. 在我糊里糊涂打开http://localhost:8080/section1提交输入的时候,页面报了500的错误:
    HTTP Status 500 - Request processing failed; nested exception is org.springframework.jdbc.BadSqlGram
    然后我在IDEA里调试,发现执行测试也出了这个:
    org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Network error IOException: No buffer space available (maximum connections reached?): connect
    看起来是数据库连接出错了,但是我根据搜索结果检查了bean里面的jdbc参数、密码、用户名,都没有问题。
    然后我发现在大段的报错中间一点还提到了下面这个:

The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to

这是时区问题,然后我就试着先解决这个,在mysql的命令行里用“show variables like ‘%time_zone%’;”,进行查询,结果如下:

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set, 1 warning (0.01 sec)

然后输入“set global time_zone=’+8:00’;”命令,重新设置time_zone为北京时间
然后输入“flush privileges;”,刷新,就好啦
(刷新完再次输入第一条命令检查一下,没变的话关了窗口重新打开看看)

然后就是启动过程了:

tomcat启动项目有两种方法
  • 第一种:在Terminal中输入,俗称命令行
    这一种比较麻烦一些,但也不难,首先输入mvn package打包
    在这里插入图片描述
    这一种方式会执行测试用例,如果测试用例没通过会打包失败。所以如果你就想跳过测试用例硬打包,可以在之前的命令后加“-Dmaven.test.skip=true”,即:
    在这里插入图片描述
    然后就可以在你项目文件的目录下发现一个target文件夹,下面发现一个war包,将其拷贝到你下载下来的tomcat里的webapps文件夹下:
    在这里插入图片描述
    然后在bin文件夹下找到startup,双击启动:
    在这里插入图片描述
    然后在浏览器输入网址“http://127.0.0.1:8080/section1”就可以啦
  • 第二种:右边插件启动
    这一种就是图形界面了就直观简单一些,点点点就可以
    在这里插入图片描述
jetty启动

也是两种,第一种在上面的图里,第二种就是在Terminal中输入“mvn jetty:run”,效果一样,然后在浏览器里输入在pox.xml文件里导入jetty插件时的端口:

    <!-- jetty插件 -->
    <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>8.1.15.v20140411</version>
        <configuration>
            <scanIntervalSeconds>3</scanIntervalSeconds>
            <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
            <webApp>
                <contextPath>/section1</contextPath>
            </webApp>
            <connectors>
                <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                    <port>8088</port>
                    <maxIdleTime>60000</maxIdleTime>
                </connector>
            </connectors>
            <stopKey>shutdown</stopKey>
            <stopPort>9998</stopPort>
        </configuration>
    </plugin>

就是中间那里,所以我的就是8088,在浏览器中输入“http://localhost:8088/section1”就可以了

其实还有mysql数据库连接的问题,但是这次比较顺利,就先不写了
涉及到的链接我都放在里面了,应该没有侵权吧qaq

希望也许能帮到大家,仅供参考,欢迎指正!

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐