通过tomcat/jetty启动web项目&踩的坑
最近开始学习服务端开发,第一课就是启动一个web项目,但是我向来总卡在配置这一关,这次又才了一些坑,最近事情很多但又怕自己以后忘了,所以简单记录一下。需要的先准备的东西:jdk8(不要9以上,可能会出一些其他问题)下载:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.htmlMaven下载:https://
最近开始学习服务端开发,第一课就是启动一个web项目,但是我向来总卡在配置这一关,这次又踩了一些坑,最近事情很多但又怕自己以后忘了,所以简单记录一下。
需要的先准备的东西:
- jdk8(不要9以上,可能会出一些其他问题)
下载:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
- Maven
下载:https://maven.apache.org/download.cgi
安装:https://www.cnblogs.com/Milburn/p/13655369.html
- IEDA
下载:https://www.jetbrains.com/idea/download
- MySQl
下载:https://dev.mysql.com/downloads/mysql/
- tomcat-8
下载:https://tomcat.apache.org/download-80.cgi
安装:https://www.cnblogs.com/ludadong/p/12833698.html
顺便放了下我用到的两个安装博客,其余的大家可以自己搜搜。
接下来是遇到的问题:
-
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了。正常显示版本了。
人 间 迷 惑。 -
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 -
启动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>
里面!且注释外面!
我当时没仔细看头脑一热放在了注释<!---->
里面。。
- 在我糊里糊涂打开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
希望也许能帮到大家,仅供参考,欢迎指正!
更多推荐
所有评论(0)