Spring系列-基础篇(3)-搭建开发环境(基于Tomcat)

背景介绍

项目上成员已经开始使用Spring MVC或Spring Boot写后台接口,可是因为原有环境的一些限制,使得在实际开发时,会浪费不少时间在编程之外的事情上。
项目上使用的应用服务器是WebLogic,是一个功能很强大的重量级服务器。咱们开发使用的IDE是IntelliJ IDEA,在本地编码阶段,若是搭配本地的WebLogic进行代码的调试、测试,是一件比较麻烦的事。首先本地运行一次要很长时间,并且DeBug模式很不稳定,这样很大大影响开发的效率。本地编码时,我仍是更倾向于搭配轻量级的Tomcat进行开发,等上线再部署在WebLogic上。
这时遇到了问题,咱们以前基于WebLogic上数据源开发的一些工具jar包,在本地Tomcat上运行不了。若是要解决这个问题,就免不了要修改一些环境配置。既然Tomcat是轻量级应用服务器,咱们能不能把配置好环境的Tomcat放在云上,而后本地的IDE链接远程的Tomcat进行代码调试。甚至于咱们开发团队内部都不用安装本地的Tomcat了,在编码阶段共用一个远程Tomcat服务器。
接下来,咱们先解决问题,再实现想法。html

安装Tomcat

jdk安装配置

安装Tomcat以前,须要先保证环境中已经安装配置了jdk。若是jdk已安装,可跳过该步骤。java

下载安装包

在Oracle的官网:http://www.oracle.com/technet... 下载对应的JDK包.当前我由于是64位的CentOS,因此下载的为 jdk-8u181-linux-x64.tar.gz。mysql

clipboard.png

咱们能够将光标放置在该标红区域,右键复制下载连接,而后在linux服务器上使用 wget 下载到 /u01/install 目录linux

[root@Kerry install]# wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

安装jdk

#建立 /u01/java 目录
[root@Kerry install]# cd /u01/
[root@Kerry u01]# mkdir java
[root@Kerry u01]# cp /u01/install/jdk-8u181-linux-x64.tar.gz  /u01/java
[root@Kerry u01]# cd /u01/java
[root@Kerry java]# tar -zxvf jdk-8u181-linux-x64.tar.gz

配置环境变量

[root@Kerry java]# vim /etc/profile

进入对 /etc/profile 文本的编辑模式。在最下面进行以下设置,其中 jdk须要改为本身对应的版本:spring

#set java enviroment
JAVA_HOME=/u01/java/jdk1.8.0_181
JRE_HOME=/u01/java/jdk1.8.0_181/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

保存退出,而后编译该配置文件,进行验证sql

[root@Kerry java]# source /etc/profile
[root@Kerry java]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

说明安装成功数据库

Tomcat安装

下载安装包

在Tomcat官网http://tomcat.apache.org/ ,我下载的是Tomcat9。一样是找到须要下载的安装包,右键复制下载连接,而后使用 wget 下载。apache

[root@Kerry install]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz

clipboard.png

安装Tomcat和验证

#将tomcat安装包解压在 /u01下,生成 apache-tomcat-9.0.12 文件夹
[root@Kerry install]# tar zxvf apache-tomcat-9.0.12.tar.gz -C /u01

clipboard.png

开启和关闭Tomcat编程

#进入 bin/目录
[root@Kerry u01]# cd /u01/apache-tomcat-9.0.12/bin/
#开启
[root@Kerry bin]# ./startup.sh 
#关闭
[root@Kerry bin]# ./shutdown.sh

在服务器(10.1.11.70)上经过 ./startup.sh 开启Tomcat,默认分配的访问端口是8080
而后能够本地浏览器上访问 http://10.1.11.70:8080/ ,正常的话会出现熟悉的tomcat管理界面。若是本地访问不了,查看服务器上是否是没有开放该端口的流入权限。vim

配置、使用数据源

添加数据源

咱们须要在现有的Tomcat服务器上配置数据源 jdbc/DBUtilsDS。

# 修改 conf/server.xml文件,配置数据源 
[root@ohsdev1 conf]# vim server.xml
# 修改 conf/context.xml文件,配置数据源 
[root@ohsdev1 conf]# vim context.xml
#在server.xml和context.xml中加的数据源配置以下:
<Resource 
    name="jdbc/DBUtilsDS"
    auth="Container" 
    type="javax.sql.DataSource"
    factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
    maxActive="100" 
    maxIdle="30" 
    maxWait="10000"
    username="username" 
    password="password"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    url="jdbc:oracle:thin:省略"/>

一、server.xml

clipboard.png

二、context.xml

clipboard.png

导入数据源依赖驱动

在 lib 目录中导入数据源所依赖的驱动jar包,例如:

  1. mysql(mysql-connector-java-5.0.8.jar)
  2. oracle(ojdbc7.jar)
  3. sql server(sqljdbc4.jar)

不一样Tomcat或JDK的版本,对驱动jar包的版本也是有限制的,本次环境 Tomcat9+JDK1.8,我使用的就是Oracle链接驱动就是 ojdbc7.jar。

调用数据源(与WebLogic的区别)

使用Spring boot写了测试的接口,Controller部分代码以下:

public class TestController {

    @RequestMapping(value = "/hello")
    public String hello(){
        return "Hello!Spring boot!";
    }

    @RequestMapping(value = "/name")
    public String name(){
        String result="链接失败!";
        try {
            InitialContext ctx = new InitialContext();
          //  DataSource ds = (DataSource) ctx.lookup("jdbc/DBUtilsDS");
           DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/DBUtilsDS");
            Connection conn = ds.getConnection();
            result="链接成功!"+conn;
        } catch (Exception e) {
           e.printStackTrace();
        }
//       String result=  DBUtil.invokeFunction("fnd_common_pkg.get_fnd_emp_displayname","u2000");
        return result;
    }

本章中,咱们配置的数据源是 jdbc/DBUtilsDS 。

  1. 若是要获取WebLogic环境中的该数据源,能够直接使用:lookup("jdbc/DBUtilsDS")
  2. 但若是要获取Tomcat环境中的该数据源,就要用:lookup("java:comp/env/jdbc/DBUtilsDS")。

Tomcat 访问数据源须要加 java:comp/env的前缀,由于Tomcat自己并不具有提供数据源的能力,它须要借助其余的开源数据源(如DBCP)类实现。

IDEA配置远程Tomcat

在IntelliJ IDEA上的配置

一、建立 Tomcat Server(Remote)

clipboard.png

二、配置 Ip、Port、Type,而后进入配置 Host的界面

clipboard.png
三、新建一个服务器链接信息

clipboard.png

四、配置服务器链接信息

clipboard.png
五、选择刚刚建立的服务器链接配置,并配置staging

clipboard.png
六、添加部署程序(推荐使用exploded)

clipboard.png

配置远程部署

根据以上配置点击“运行”,会报错链接不上 http://10.1.11.70:1099

clipboard.png
咱们在本地使用 telnet 10.1.11.70 1099 ,发现链接不上,这时发现服务器端的配置1099端口的进程并无运行。

[root@ohsdev1 bin]# vi catalina.sh
#加上如下配置
export CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=10.1.11.70"

export JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

clipboard.png
其中的1099号端口,你在配置前须要检查下,是否被占用,若是被占用,你须要换个其余端口(IDEA中监听的端口也要随着改变)。
如上,服务端的配置基本上就ok,如今须要启动了,以前,咱们启动tomcat的脚本多是startup.sh,如今咱们须要远程部署,启动脚本是catalina.sh。

#在 /u03/apache-tomcat-9.0.12目录执行启动脚本
[root@ohsdev1 apache-tomcat-9.0.12]# bin/catalina.sh run
#若是要关闭 bin/catalina.sh stop

结果返回日志,启动Tomcat成功。

验证远程部署

  • 本地浏览器访问 http://10.1.11.70:8080/ 能够查看到tomcat管理页面;
  • 本地再使用 telnet 10.1.11.70 1099 ,此时能够访问;
  • 本地IDEA 点击运行能够正常运行,链接到远程Tomcat。

访问 http://10.1.11.70:8080/springboot-demo/name 能够正常运行本地IDEA中的程序,经过jdbc/DBUtilsDS数据源访问数据库返回信息。

在/u03/apache-tomcat-9.0.12/logs 目录还能够查看Tomcat实时运行日志

[root@ohsdev1 logs]# tail -500f catalina.out

配置远程调试

虽然上述能够作到,本地代码直接部署到远程Tomcat,可是对于平常开发来讲,咱们更但愿可以支持在远程Tomcat上进行调试。
咱们再打开以前在IDEA上配remote tomcat的地方,而后在选择下图Debug时自动生成以下信息,须要将该信息复制到远程服务器的catalina.sh文件中。但很明显远程服务器上是不存在D:IntelliJ_IDEAlibrtdebugger-agent.jar等

clipboard.png
咱们须要将下图中标红处的勾去除,而后再返回刚刚的Debug处,就没有了本地配置文件了。

clipboard.png

clipboard.png
如今,咱们复制Debug生成的这串命令,在服务器上的 bin/catalina.sh文件中加上

CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=50839,suspend=n,server=y"

clipboard.png
而后回到 bin 目录执行下列命令,开启tomcat和监听端口:

[root@ohsdev1 bin]# ./catalina.sh start

这时回到 IDEA ,点击Debug运行代码,等没问题后,在浏览器中访问http://10.1.11.70:8080/springbootDemo/name ,代码进入断点

clipboard.png

相关文章
相关标签/搜索