主要内容
本文主要记录在搭建服务器过程中遇到的问题,以及相应的解决方法。为了避免在花费大量时间后所了解的东西,随着时间逐渐忘记或者之后遇到类似问题会再次花费时间查询,故记录在此。由于自己不是做后端的,之前对后端技术栈只停留在一些名称上,所以文章中难免会存在疏漏,还望指正,谢谢。
本文是根据Java——搭建自己的RESTful API服务器(SpringBoot、Groovy)文章搭建,所以如果需要搭建服务器还请参考此篇文章。
起因
自己想快速搭一个后台,但是自己又没有后端的经验。于是在网上查找资料,发现了一个较为详细的教程。想了解具体步骤可以向 Java——搭建自己的RESTful API服务器(SpringBoot、Groovy) 这里先感谢原作者满足了我的这一愿望。虽然有了基本知道,但是在搭建过程中遇到了很多问题,所以抱着能够快速了解新技术的心态,对遇到了问题进行了总结。
问题及解决
1、创建一个Maven项目
由于参考的文章中创建了maven项目,所以这个问题无法避免。对于一个android开发者使用过gradle创建项目,所以对于maven很陌生。
具体创建过程不赘述 可参考IntelliJ IDEA 15 创建maven项目。不了解maven项目构建的可以参考Maven初识(二)——基本概念。对maven有个大致的了解(基本配置,项目目录结构等)虽然是eclipse 下的,但影响不大。
最后总结一下 创建 maven项目的 基本步骤 :新建项目(项目命名,项目路径设置):
项目命名项目路径设置—>配置project-structure(Modules–Facts–Aftifacts)–>部署服务器(Tomcat)
2、项目语言是groovy
对于写android的java使用者看起来虽然有些别扭,但还是可以接受。
解决方法:如图所示:
右键选择要操作的grovvy类选中Rrefactor —> Convert to java
3、参考教程中的数据如何创建?
按照之前的教程差不多配置好了以后,突然意识到一个很严重的问题。数据呢?如何获得?这个对于一个没有开发过后端,不了解项目目录结构的我来说,有些困难。先后尝试在webapp 目录下放置 HTML xml 等文件无果后,上网查找了资料了解了一下maven配置文件的基本配置和概念。最终在
文件中找到了数据库查询语句,于是意识到了,数据应该存放在数据库中。
于是在idea中创建数据库mysql。在这里要注意,在配置前确保mysql中已经存在你要创建的数据库,否则在配置过程中点击 test connect无法成功连接。
启动mysql数据库 输入show databases; (带分号)查看,如果没有,使用
create database 数据库名; 创建数据库。一切操作就绪后,可以按照示例中添加相应数据到数据库。
4、启动application 时遇到Application startup failed错误
没有接触过有点慌,由于是解决后记录的,所以有些记不清了。最初报的不止是这个错,是Unable to start embedded container。参考了spring-boot服务启动报: Unable to start embedded container由于编译环境不一致,在尝试了所有可能都未能解决问题。
最后参考了评论中的一种可能Tomcat版本。先在idea中启动Tomcat 发现版本是7.0.86。这在配置中得到了证实
之后关掉Tomcat,运行application 发现版本是 8.5.6
仔细对比发现application中使用了Tomcat的包。于是参考 Spring Boot:内置tomcat启动和外部tomcat部署总结中方法二在pom.xml添加
<!--部署成war包时开启↓↓↓↓-->
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!--部署成war包时开启↑↑↑↑-->
...
</dependencies>
运行后解决
到目前为止,示例项目基本可以正常运行了
写在最后
参考文章
Java——搭建自己的RESTful API服务器(SpringBoot、Groovy)
IntelliJ IDEA 15 创建maven项目
Maven初识(二)——基本概念
spring-boot服务启动报: Unable to start embedded container
Spring Boot:内置tomcat启动和外部tomcat部署总结