老宋的地盘

 找回密码
 我要加入
搜索
老宋 首页 文章 技术 查看内容

学习tomcat遇到的问题汇总

2022-10-12| 查看: 73| 评论: 0

摘要: 一先查看一下自己机器上是否安装Tomcat,如果安装版本是多少?找到了两个路径存在tomcat:1、/Library/Tomcat/ 2、/User/countname/Library/Tomcat尝试运行,发现执行的/User/ 目录下的项目,因此怀疑/Library/ 目录 ...
先查看一下自己机器上是否安装Tomcat,如果安装版本是多少?
找到了两个路径存在tomcat:
1、/Library/Tomcat/
2、/User/countname/Library/Tomcat
尝试运行,发现执行的/User/ 目录下的项目,因此怀疑/Library/ 目录下的为系统自带,另一个为后期自己安装

然后查看版本号,打开终端(Terminal),输入命令sh    /xxxx/Tomcat/bin/catalina.sh version

尝试tomcat是否可以正常运行项目:做了两个一个是 test.html   另一个是:test.jsp,运行后发现都可以运行

这里有个波折,之前可能改过端口,默认端口为8080,查找文件:Tomcat/conf/server.xml,其中

<Connector port="8088" protocol="HTTP/1.1"> 这个就是http协议的相关端口

成功跑起来后,发现默认首页有三个管理入口

查看时需要输入账户密码,查找资料后找到配置路径:Tomcat/conf/tomcat-users.xml,添加或者修改其中代码:

<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="1234" roles="admin-script,admin-gui,manager-gui,manager-script"/>

考虑到自己的项目需要用mysql数据库,因此学习Tomcat配置数据库,主要时间都耗在这里了,多次调试不成功,不知道是连不上还是代码错误,过程中各种报错(自己机器上的mysql是xampp中带的,小插曲这里的mysql用的是MariaDB,是mysql的子集):

发现链接数据库要做三件事:

MariaDB与mysql分别是各自的版本,要想知道mariadb对应的mysql版本,如下:

https://www.24jq.com/portal.php?mod=view&aid=993


1、添加对应mysql版本的对应jar包 https://dev.mysql.com/downloads/connector/j/

我用的是mac电脑,选择的是这个

然后将jar包解压到/Library/Tomcat8/lib 目录下。

第二步,

修改/Tomcat8/conf/context.xml文件,在<Context>中添加红色部分

<Context>

         <Resource name="jdbc/mysql" auth="Container"        #mysql,链接的数据库类型,有些地方说随便写,我就在这里栽了坑
                type="javax.sql.DataSource"
                maxActive="50" maxIdle="10" maxWait="5000"
                driverClassName="com.mysql.jdbc.Driver"
                username="root" password="123456"                #为数据库设置好的登录账户和密码,可以在终端尝试一下
                url="jdbc:mysql://localhost:3306/laosong"     #这里注意端口,这里的laosong为索要链接的数据库名
         />

</Context>

这一步要注意,给mysql设置个环境变量

https://www.24jq.com/portal.php?mod=portalcp&ac=article

第三步,

向项目目录添加或者修改web.xml,路径如下:Tomcat8/webapps/test/WEB-INF  这里的test是我的功能内目录,不用管,只需找到WEB-INF,web.xml就在这里,内容添加或者修改为:

<web-app>

<resource-ref>
            <description>DB Connection</description>
            <res-ref-name>jdbc/mysql</res-ref-name>   #这里的mysql是数据库类型
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
          </resource-ref>
</web-app>


然后就是在工程文件中链接数据库,看是否成功,我在

<res-ref-name>jdbc/mysql</res-ref-name> 

<Resource name="jdbc/mysql" auth="Container"

这两处耽误很多时间,主要被网络误导,不知道这里的mysql是数据库类型,数据库名称还是随意起名

另外,建好的账号,当时联通没问题,后来发现联通有问题,也耽误了些时间;


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|小黑屋|老宋 ( 备案中... )

GMT+8, 2022-12-4 , Processed in 0.041530 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部