“用Java搭建自己的服务器”的踩坑之旅

主要内容

本文主要记录在搭建服务器过程中遇到的问题,以及相应的解决方法。为了避免在花费大量时间后所了解的东西,随着时间逐渐忘记或者之后遇到类似问题会再次花费时间查询,故记录在此。由于自己不是做后端的,之前对后端技术栈只停留在一些名称上,所以文章中难免会存在疏漏,还望指正,谢谢。

本文是根据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.6application中
仔细对比发现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部署总结

猜你喜欢

转载自blog.csdn.net/fighting_2017/article/details/89927992
今日推荐