• [问题求助] DevEco开发鸿蒙app与本地tomcat服务器连接
    【功能模块】华为云连接【操作步骤&问题现象】1、在本地使用tomcat搭建了服务器,开发的鸿蒙app无法与tomcat连接。连接使用的是模拟机。2、如果使用安卓的模拟机,其默认的外部地址是10.0.2.2,所以连接地址就是http://10.0.2.2:8080/..../....,但在鸿蒙的模拟器上地址就不对了。10.0.0.2和127.0.0.1都试过了,无法连接。请教一下,哪位知道地址是什么或者应该如何连接吗?【代码】连接部分代码如下:new Thread(new Runnable() { @Override public void run() { try { URL url = new URL(path); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("GET"); httpURLConnection.setConnectTimeout(5000); int responseCode = httpURLConnection.getResponseCode(); if (200 == responseCode) { InputStream inputStream = httpURLConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); responseMsg = bufferedReader.readLine(); if(responseMsg==null){ message = "空的"; } HiLog.warn(LABEL,"connect successfully","info"); } else { System.out.println("responseCode = " + responseCode); //连接服务器出错,错误代码为:responseCode 根据代码值告诉用户出错的原因 //.... } } catch (Exception e) { e.printStackTrace(); } }}).start();【其他信息】(可选,上传日志内容或者附件)相关网络权限已经开启。这段代码在安卓上是可以运行的,可以连接到本地的服务器。
  • [热门活动] 【HCS Servciestage】如何通过servicestage部署基于Nginx的前端应用
    # 【HCS Servciestage】如何通过servicestage部署基于Nginx的前端应用## 背景HCS ServiceStage部署前端应用组件时,希望通过nginx代理来访问部署的前端应用。## 问题如何通过Servicestage部署基于Nginx的前端应用?
  • [技术干货] Tomcat 如何优化?
    优化连接配置.这里以tomcat7的参数配置为例,需要修改conf/server.xml文件,修改连接数,关闭客户端dns查询。参数解释:URIEncoding=”UTF-8″ :使得tomcat可以解析含有中文名的文件的url,真方便,不像apache里还有搞个mod_encoding,还要手工编译。maxSpareThreads: 如果空闲状态的线程数多于设置的数目,则将这些线程中止,减少这个池中的线程总数。minSpareThreads: 最小备用线程数,tomcat启动时的初始化的线程数。enableLookups: 这个功效和Apache中的HostnameLookups一样,设为关闭。connectionTimeout : connectionTimeout为网络连接超时时间毫秒数。maxThreads : maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数,即最大并发数。acceptCount : acceptCount是当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,如果这个队列也满了,就直接refuse connection。maxProcessors与minProcessors: 在 Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最 大利用率的高效程序,使空闲时间保持最低,从而接受更多的请求。通常Windows是1000个左右,Linux是2000个左右。
  • [技术干货] web场景-Tomcat调优
    1.1 Tomcat简介Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。1.2 物理机调优方法1.2.1 Tomcat参数调优目的:通过修改tomcat的配置文件,可以有效提高tomcat性能方法:按照如下所示信息,配置/home/apache-tomcat-9.0.20/conf/server.xml的各个参数。<Connector  executor="tomcatThreadPool"    port="10000" protocol="HTTP/1.1"    acceptCount="10000"    maxConnections="10000"    connectionTimeout="20000"    compression="off"    compressionMinSize="2048"    URIEncoding="utf-8"    tcpNoDelay="true"    enableLookups="false"    useURIValidationHack="false"    disableUploadTimeout="false"    connectionUploadTimeout="150000"    keepAliveTimeout="12000"    maxKeepAliveRequests="1000"redirectPort="8443" /> 1.2.2 Tomcat 亲和性设置Tomcat支持cpu绑核,利用cpu亲和性设置,可以使用taskset或numctl工具进行绑核操作方法:taskset -c N ./startup.sh或numactl -C N ./startup.shN表示要指定核的序号,例如 将tomcat进程绑定到0-3core上:taskset -c 0-3  ./startup.sh1.2.3 容器场景调优方法容器与物理机共享网口,在物理机上执行绑核脚本。以4core的http短连接场景的绑核脚本为例,脚本内容如下,如果要修改绑核脚本,只需修改要绑定的网口名eth1,以及要绑定的core,然后在关闭irqbalance.service的情况下使用脚本即可:#!/bin/bashcnt=2eth1=enp3s0ethtool -L $eth1 combined $cntirq1=`cat /proc/interrupts| grep -E ${eth1} | head -1 | awk -F ':' '{print $1}'`irq1=`echo $irq1`i=0while(( $i < 1))do    for cpunum in 2 3    do        echo $cpunum "->" $irq1        echo  $cpunum > /proc/irq/$irq1/smp_affinity_list        let "irq1++"    done   let "i++"done脚本中参数及命令说明参数及命令名称参数及命令解释cnt 网口队列数eth1使用的网口名irq1网口eth1对应的中断号cpunum分配给网口eth1用于处理网卡中断的核ethtool -L $eth1 combined $cnt设置网口队列长度为核数cat /proc/interrupts | grep $eth1 | awk -F ':' '{print $1}'查询网口中断数echo $cpunum > /proc/irq/$irq/smp_affinity_list根据中断号,将每个中断各绑定在一个核上此脚本只是容器场景下网卡调优方法1.3 虚拟机调优方法虚拟机采用网卡直通的模式,每个虚拟机配置一个虚拟网口,在虚拟机内部执行绑核脚本。以4core的http短连接场景的绑核脚本为例,脚本内容如下,若要修改绑核脚本,只需修改要绑定的网口eth1,以及要绑定的core,在关闭irqbalance.service的情况下使用脚本即可。#!/bin/bashcnt=2eth1=enp5s0ethtool -L $eth1 combined $cntirq1=`cat /proc/interrupts| grep -E ${eth1} | head -1 | awk -F ':' '{print $1}'`irq1=`echo $irq1`i=0while(( $i < 2))do    for cpunum in  3    do        echo $cpunum "->" $irq1        echo  $cpunum > /proc/irq/$irq1/smp_affinity_list        let "irq1++"    done  let "i++"done脚本中参数名称及解释参数名称参数解释cnt网口队列数eth1实际使用的网口名irq1网口eth1对应的中断号cpunum分配给网口eth1用于处理网卡中断的核此脚本只是虚拟机场景下的网卡调优,虚拟机场景下的亲和性设置与物理机一致.
  • [服务构建器] 【华为云Stack ManageOne 服务构建器】通过服务构建器申请安装一个Tomcat服务
    通过服务构建器申请安装一个WordPress服务# 1. 软件介绍**Tomcat** 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。# 2.任务目标此任务是利用服务构建器的资源编排功能,一键式自动化实现虚拟机的创建以及`Tomcat`服务的安装,并通过`EIP`可以直接访问**Tomcat**首页。# 3.任务准备1. 我们选用`Tomcat9.0`版本,由于环境与`Tomcat`官网的网络不通,所以我们可以先手动讲软件包放置到`软件仓库`,虚拟机与软件仓库的网络互通,可以直接从软件仓库下载软件。2. 由于`Tomcat`的运行依赖`JDK`,所以我们也需要准备`JDK`的安装包,我们这里选用`JDK1.8`版本。3. 软件包准备如下图所示,都已经提前上传到**软件仓库**。!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/124439vzugpqhd3qqon7h0.png)## 4.执行步骤### 1. 编写Tomcat安装脚本由于我们是通过在申请完虚拟机后,通过执行脚本来安装`Tomcat`的,所以我们需要提前编写好`Tomcat`的安装脚本。**步骤:**1. 登录`ManageOne`的租户面,依次点击 **资源->脚本资源->创建脚本**。来到创建脚本界面: !(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/125133mvwcixnudnnon7ii.png) 2. 创建脚本我们的脚本是在`linux`操作系统下的`shell`脚本,所以这里系统类型选择`Linux`,脚本类型选择`Shell`,脚本名称和分类可以自定义。我们编写脚本内容: ```shell #!/bin/bash -v JDK_SOURCE_URL=jdk_source_url TOMCAT_SOURCE_URL=tomcat_source_url LOCAL_TEMP=/opt/tmp JDK_INSTALL_PATH=/usr/local/java TOMCAT_INSTALL_PATH=/opt/tomcat LOG_PATH=/var/log/tomcat_install.log echo "Start to execute tomcat install script. " >>${LOG_PATH} firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload [ ! -d ${LOCAL_TEMP} ] && mkdir -p ${LOCAL_TEMP} cd ${LOCAL_TEMP} JDK_PACKAGE_NAME=${JDK_SOURCE_URL##*/} wget -qc ${JDK_SOURCE_URL} -O ${JDK_PACKAGE_NAME} echo "Download jdk package success. JDK_PACKAGE_NAME=${JDK_PACKAGE_NAME} " >>${LOG_PATH} [ ! -d ${JDK_INSTALL_PATH} ] && mkdir -p ${JDK_INSTALL_PATH} tar -zxvf ${JDK_PACKAGE_NAME} -C ${JDK_INSTALL_PATH} rm ${JDK_PACKAGE_NAME} JDK_ROOT_FOLDER=$(echo ${JDK_PACKAGE_NAME} | awk -F- '{print $2}' | awk -Fu '{print "jdk1."$1".0_"$2}') cp /etc/profile /etc/profile.$(date +%Y%m%d%H%M%S)bak cat /etc/profile export JAVA_HOME=${JDK_INSTALL_PATH}/${JDK_ROOT_FOLDER} export JRE_HOME=${JDK_INSTALL_PATH}/${JDK_ROOT_FOLDER}/jre export CLASSPATH=.:${JDK_INSTALL_PATH}/${JDK_ROOT_FOLDER}/lib:${JDK_INSTALL_PATH}/${JDK_ROOT_FOLDER}/jre/lib:$CLASSPATH export PATH=${JDK_INSTALL_PATH}/${JDK_ROOT_FOLDER}/bin:${JDK_INSTALL_PATH}/${JDK_ROOT_FOLDER}/jre/bin:$PATH EOF source /etc/profile echo "Export environment variable success. JAVA_HOME=${JAVA_HOME}" >>${LOG_PATH} TOMCAT_PACKAGE_NAME=${TOMCAT_SOURCE_URL##*/} wget -qc ${TOMCAT_SOURCE_URL} -O ${TOMCAT_PACKAGE_NAME} echo "Download tomcat package success. TOMCAT_PACKAGE_NAME=${TOMCAT_PACKAGE_NAME} " >>${LOG_PATH} [ ! -d ${TOMCAT_INSTALL_PATH} ] && mkdir -p ${TOMCAT_INSTALL_PATH} tar -zxvf ${TOMCAT_PACKAGE_NAME} -C ${TOMCAT_INSTALL_PATH} rm ${TOMCAT_PACKAGE_NAME} TOMCAT_ROOT_FOLDER=${TOMCAT_PACKAGE_NAME%.tar.gz} cd ${TOMCAT_INSTALL_PATH}/$TOMCAT_ROOT_FOLDER/bin chmod +x *.sh ./startup.sh echo "Start tomcat success. " >>${LOG_PATH} ```3. 参数设置脚本可以设置参数,这里假设我们只需要用户传入`JDK`和`Tomcat`的下载地址即可,其他参数我们就在脚本中指定了。如果脚本内容中某一个变量是参数,需要在执行时用户传入,我们就需要给脚本设置参数。点击创建脚本页面的 **参数配置** 就可以给脚本设置参数了:!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/1313345ebja87axlc5r4qr.png)我们给脚本设置两个参数,参数名称一定要和脚本内容中定义的名称一致。如我们脚本内容中的参数分别叫`jdk_source_url`和`tomcat_source_url`,所以我们定义的参数也必须一致,如下所示:!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/1316524yblbeielurnh5ak.png)!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/131937xwknmimh5wtn2psq.png)4. 保存脚本我们脚本信息填写完成后,点击 **确定** 就可以保存脚本了。### 2.绘制服务模板创建好脚本后,我们就可以创建服务模板了。1. 登录`ManageOne`的租户面,依次点击 **系统 -> 服务构建->服务模板** 来到服务模板管理界面后,点击左上角的 **创建按钮**,选择 **资源编排图形化设计器** ,带到服务模板绘制界面。2. 绘制模板`Tomcat`是一个`Web`服务器,需要对外提供服务,所以我们需要一个**弹性IP**资源,用来暴露外界访问地址,其次我们需要一台**ECS**资源,并且要在`ECS`执行我们的`Tomcat`安装脚本,所以需要一个**脚本配置绑定**资源,其次拖入我们刚刚创建的**Tomcat安装脚本**资源。最终我们的模板绘制如下:!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/133203ljesypeswjgym2mc.png)* 输入参数:输入参数主要包括虚拟机的基本参数以及脚本需要的基本参数。* 输出参数:我们安装好后的`Tomcat`需要暴露`Tomcat首页地址`,Tomcat首页地址格式:`http://弹性IP:8080`.这里我们把虚拟机的弹性IP和私有IP也暴露出来,方便其他需求使用。!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/134152wmezjwqomkrknboi.png)---绘制好模板后,点击**保存服务模板**,然后填写模板的一些基本信息后,点击**确定**即可保存模板成功。### 3.创建服务创建好服务模板后,我们服务模板列表页面找到刚刚创建的模板,点击**创建服务**,来到创建服务界面:!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/134724h9k8xa37ibqlsjcj.png)!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/1348032andakxutfggjqjm.png)在创建服务界面可以配置很多参数:1. 服务的基本信息:包括服务的名称、描述、版本、分类等信息。2. 位置信息:我们可以选择服务创建的`region`以及资源集信息。3. 使用策略:可以配置服务发布后的可见范围,可以选择全部可见(当前VDC及下级VDC可见),或者部分可见,选择发布到的VDC信息。4. 其他参数:剩下的参数就是我们服务模板的参数,这些参数我们可以在创建服务时锁定,如我们想控制虚拟机镜像,那我们可以在创建服务时锁定,并且对用户隐藏,这样以后申请时,用户就看不到镜像的参数,所有虚拟机镜像保持一致。这里我们所有的参数都选择用户自定义,由用户在申请时指定。参数填写完成后,点击 **立即创建** 创建我们的服务。---### 4.申请服务服务创建完成后,就可以立即在左上角导航栏看到。!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/135509vxub4fnt91ps2qzs.png)我们点击我们刚刚创建的服务,来到服务申请页面,填写对应的参数:!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/1356101h8wwijxsuunxv9k.png)参数填写完成后,点击立即申请,申请服务是异步的,需要几分钟的时间,我们耐心等待一会,喝口水,就可以看到服务申请完成了。!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/135731qar9ekiuijristyd.png)---### 5. 服务测试当我们的服务申请完成后,我们点击**申请到的服务名称**,进入详情界面,可以看到我们之前定义的输出参数:!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/144529if0nkkyfhdju0fjb.png)点击`Tomcat欢迎页`,可以正确跳转到`Tomcat`的欢迎页。!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/21/143849xnfbpjfw9ugwg4sx.png)---## 5. 总结服务构建器提供了非常丰富的资源编排功能,用户通过编排,可以实现各种场景的软件安装、集群配置、资源组合等功能,欢迎体验。
  • [技术干货] 鲲鹏云服务器安装JDK和Tomcat
    1、下载openjdkwget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gzmkdir -p /home/data/openjdk/mv jdk8u252-b09 /home/data/openjdk/2、配置环境变量vim /etc/profile在文件末尾添加环境变量配置代码export JAVA_HOME=/home/data/openjdk/jdk8u252-b09export PATH=$JAVA_HOME/bin:$PATH:wq保存并退出。3、检查openjdk是否安装成功java -version 4、下载tomcat在tomcat官网下载相应的版本。wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gztar -zxf apache-tomcat-8.5.69.tar.gz#重命名mv apache-tomcat-8.5.69 tomcat-zgshh5、开启8080端口firewall-cmd --state 显示已开启状态。#若没有开启,则输入以下命令开启systemctl start firewalld.service;#开启8080端口firewall-cmd --zone=public --add-port=8080/tcp --permanent;#重启防火墙systemctl restart firewalld.service;#重载配置firewall-cmd --reload; 在华为云控制台查看对应的安全组,将8080端口加入入方向规则。6、开启tomcat服务/home/data/tomcat-zgssh/bin/startup.sh至此tomcat安装完成。
  • [新手课堂] 高并发情况下,我们系统是如何支撑大量的请求的?
     1、尽量使用缓存技术, 包括用户缓存,信息缓存还有静态页面缓存,多花点内存来做缓存,可以大大减少与数据库的交互次数和 tomcat 执行次数,减少不变的数据重复在 tomcat 和数据库中获取的次数。         2、同步转异步, 对于一些不需要即时结果的操作,可以使用 MQ 消息机制,达到同步转异步的效果,如秒杀系统,正常流程:先点击秒杀,然后往服务器发送请求,在页面等待响应,这样融入大量请求,服务器压力会特别大,搞不好服务器就会宕机。使用 MQ 消息队列实现异步的步骤为:点击秒杀,返回请稍后查看结果,请求去 MQ 队列中排队,等排队执行完成后返回给用户信息。这样就可以大大减少服务器的压力,提升用户体验度。        3、合并多个同类型请求为一个请求, 使用 SpringCloud 的 Hystrix 技术来实现。在服务提供者提供了返回单个对象和多个对象的接口,并且单个对象的查询并发数很高,服务提供者负载较高的时候,我们就可以使用请求合并来降低服务提供者的负载。        4、数据库方面, 搭建数据库集群,网站一般读的多写的少,可以按照网站的统计数据来找到一个合适的平衡点,来搭建主从数据库服务,可以实现一主多从,或者多主多从,来减轻单个数据库的压力。可以按照每台数据库服务器的硬件条件,合理分配权重,配合 Mycat 达到负载均衡。         5、高质量代码, 合理的使用循环和递归,不要为了速度丢了内存,也不要为内存丢了速度,要看业务场景,来合理使用。减少自动处理逻辑,比如字符串拼接,每次拼接都会创建一个字符串放入常量池,这里可以按照业务场景来使用 StringBuilder 或者 StringBuffer 来进行字符串拼接,能手动处理就手动处理,代码中所有的临时对象,用完之后都赋值为 Null,这样可以减少 GC 的重复排查,效率就会有所提升。所有的资源用完都要回收,如:IO、数据库连接对象等,因为这些资源对 GC 不是特别友好。减少代码调用链,尽量不要让代码调用链超过 10,远程方法调用没事。提供过滤能力,把每个过滤器写的详细一点,把耦合度高的数据放入到同一个过滤器中,如果第一个过滤器没有通过那么后面的过滤器不执行,相对的业务也就不执行了,效率也就提升了。                 6、网络优化, 外网转内网,内网转局域网,外网转 VPN。配合公司内的网络运维人员,进行网络网段的切换,尽量让服务器群处于内网,或者局域网中,提供访问速度。服务器之间的通讯如果都是局域网内进行的,那么可想而知,访问速度肯定有所提升。        7、中间件处理 搭建 Tomcat 集群,通过 Nginx 代理 Tomcat 服务器做负载均衡,对每个 Tomcat 的调优,合理设置设置 Tomcat 的最大连接数,因为 Tomcat 的默认最大并发数为 200。适当的加大 Tomcat的内存和最多线程数,设置 JVM 的处置大小为服务器可用内存的最大值的 80%。关闭 DNS查询,开启 gzip 压缩。 搭建 MQ 集群,高并发的时候一个 MQ 来处理队列根本不够用,这时可以搭建集群来处理。增加 Nginx 的内存,加大 Nginx 缓存数据的范围。服务器操作系统都用 64 位的,因为 32 位的系统最大内存只能有 4G 图片服务器分离,搭建 vsftpd 服务器来存储图片数据,通过 Nginx 代理 vsftpd 存放路径就可以直接访问到图片,这样响应到页面的只是超链接,并不是图片,这样页面的响应会得到大大的提升。
  • [沙箱纠错] 基于ECS实现一分钟自动化部署_步骤
    选中“安装Tomcat“点击“添加”,配置如下:① 步骤显示名称:默认即可② 主机组:选择1.4.1步骤创建的主机组名称③ tomcat版本:选择Tomcat-8.5.38④ 安装路径:/usr/local/tomcat安装路径应该是/usr/tomcat/,因为下面的启动tomcat服务是这个路径
  • [openEuler] openEuler-20.03-LTS-SP1【aarch64】tomcat连接mysql
    架构信息和系统![cpu.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/163231syvxma6nuxcptnrm.png)安装mysql及tomcat运行所需依赖[root@a1 ~]# yum install -y java-1.8.0-openjdk mysql![1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/163701imr64earmn1fhfw9.png)[root@a1 mysql]# mkdir -p /data/mysql/data/![2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/163753ufj6honzsckpeglw.png)mysql初始化[root@a1 mysql]# /usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=mysql![3.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/1638434rsbvyeffn3li0yg.png)注意此时密码已经生成,用此密码登录[root@a1 mysql]# systemctl start mysql![4.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/1639246hw8ycu8irshdz8f.png)安装tomcat[root@a1 local]# wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.21/bin/apache-tomcat-8.0.21.tar.gz![5.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/163956vsylfsjkuvvjeovo.png)[root@a1 local]# tar zxvf apache-tomcat-8.0.21.tar.gz[root@a1 local]# wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.21.tar.gz[root@a1 local]# tar zxvf mysql-connector-java-8.0.21.tar.gz安装mysql-connect[root@a1 local]# cp mysql-connector-java-8.0.21/mysql-connector-java-8.0.21.jar apache-tomcat-8.0.21/lib/![7.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/164802rofxtdbszzye3vpl.png)编写连接mysql文件[root@a1 local]# cd apache-tomcat-8.0.21/webapps/[root@a1 webapps]# mkdir test[root@a1 webapps]# vim test/mysql.jsp![701.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/164915uuvorrmpj7ft0hof.png)[root@a1 apache-tomcat-8.0.21]# cat webapps/test/mysql.jsp![703.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/1706218v47vo3aa45efmye.png)测试连接![702.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/165012plofqk5l9ftlahew.png)自此tomcat连接mysql成功ps报错无关连接问题,更改mysql初始password后正常![777-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/181803hhqlz8ukoabpnipi.png)![777.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202108/30/181815jilqt2hmmtkqkeda.png)
  • [新手课堂] Tomcat 的类加载器?
    1)Bootstrap ClassLoader:可以看到上图中缺少了 Extension ClassLoader,在 Tomcat 中 Extension ClassLoader 被集成到了 Bootstrap ClassLoader 里面。2)System ClassLoader 就是 Application ClassLoader:Tomcat 中的系统类加载器不会加载 CLASSPATH 环境变量的内容,而是从以下资源库构建 System 类加载器。$CATALINA_HOME/bin/bootstrap.jar,包含用于初始化Tomcat服务器的 main() 方法,以及它所依赖的类加载器实现类。$CATALINA_BASE/bin/tomcat-juli.jar 或 $CATALINA_HOME/bin/tomcat-juli.jar,日志实现类。如果 $CATALINA_BASE/bin 中存在 tomcat-juli.jar,则使用它来代替 $CATALINA_HOME/bin中的那个。$CATALINA_HOME/bin/commons-daemon.jar3)Common ClassLoader:从名字也看出来来了,主要包含一些通用的类,这些类对 Tomcat 内部类和所有 Web 应用程序都可见。该类加载器搜索的位置由 $CATALINA_BASE/conf/catalina.properties 中的 common.loader 属性定义,默认设置将按照顺序搜索以下位置。$CATALINA_BASE/lib 中未打包的类和资源$CATALINA_BASE/lib 目录下的JAR 文件$CATALINA_HOME/lib 中未打包的类和资源$CATALINA_HOME/lib 目录下的JAR文件4)WebappX ClassLoader:Tomcat 为每个部署的 Web 应用程序创建一个单独的类加载器,这样保证了不同应用之间是隔离的,类和资源对其他 Web 应用是不可见的。加载的路径如下:Web应用的 /WEB-INF/classes 目录下的所有未打包的类和资源Web应用的 /WEB-INF/lib 目录下的 JAR 文件中的类和资源
  • [新手课堂] Tomcat 的类加载过程?
    Tomcat 的类加载过程,也就是 WebappClassLoaderBase#loadClass 的逻辑如下。1)首先本地缓存 resourceEntries,如果已经被加载过则直接返回缓存中的数据。2)检查 JVM 是否已经加载过该类,如果是则直接返回。3) 检查要加载的类是否是 Java SE 的类,如果是则使用 BootStrap 类加载器加载该类,以防止 webapp 的类覆盖了 Java SE 的类。例如你写了一个 java.lang.String 类,放在当前应用的 /WEB-INF/classes 中,如果没有此步骤的保证,那么之后项目中使用的 String 类都是你自己定义的,而不是 rt.jar 下面的,可能会导致很多隐患。4)针对委托属性 delegate 显示设置为 true、或者一些特殊的类(javax、org 包下的部分类),使用双亲委派模式加载,只有很少部分使用双亲委派模型来加载。5)尝试从本地加载类,如果步骤5中加载失败也会走到本步骤,这边打破了双亲委派模型,优先从本地进行加载。7)走到这,代表步骤6加载失败,如果之前不是使用双亲委派模式,则在这边会委托给父类加载器来尝试加载。8)走到这边代表所有的尝试都加载失败,抛出 ClassNotFoundException。
  • [问题求助] tomcat
    鲲鹏系统中的tomcat安装
  • [技术干货] Tomcat容器是如何创建servlet类实例?用到了什么原理?
    当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。
  • [技术干货] Tomcat 如何优化?
    优化连接配置.这里以tomcat7的参数配置为例,需要修改conf/server.xml文件,修改连接数,关闭客户端dns查询。参数解释:URIEncoding=”UTF-8″ :使得tomcat可以解析含有中文名的文件的url,真方便,不像apache里还有搞个mod_encoding,还要手工编译。maxSpareThreads: 如果空闲状态的线程数多于设置的数目,则将这些线程中止,减少这个池中的线程总数。minSpareThreads: 最小备用线程数,tomcat启动时的初始化的线程数。enableLookups: 这个功效和Apache中的HostnameLookups一样,设为关闭。connectionTimeout : connectionTimeout为网络连接超时时间毫秒数。maxThreads : maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数,即最大并发数。acceptCount : acceptCount是当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,如果这个队列也满了,就直接refuse connection。maxProcessors与minProcessors: 在 Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最 大利用率的高效程序,使空闲时间保持最低,从而接受更多的请求。通常Windows是1000个左右,Linux是2000个左右。
  • [技术干货] Tomcat有几种部署方式?
    直接把Web项目放在webapps下,Tomcat会自动将其部署在server.xml文件上配置<Context>节点,设置相关的属性即可通过Catalina来进行配置:进入到conf\Catalina\localhost文件下,创建一个xml文件,该文件的名字就是站点的名字。编写XML的方式来进行设置。
总条数:57 到第
上滑加载中