【03】centOS下Tomcat域名无法访问Servlet问题的处理

本文解决了在Tomcat中部署Servlet遇到的路径问题。通过调整Eclipse中的Java编译输出路径,确保.class文件位于WebRoot/WEB-INF/classes下,使Servlet能够被正确访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.先看tomcat server.xml的配置

      <Host name="www.gengducun.com"  appBase="/home/web/gengducun"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

		<Context path="" docBase="/home/web/gengducun/WebRoot" reloadable="false" crossContext="true"/>
      </Host>

贴这个代码是表示,已经可以通过域名访问到项目的WebRoot目录了。

二.问题

我所面临的问题是,WebRoot目录虽然可以访问,但是我的Servlet不可以访问。这个问题让我纠结了很久,最后在网上找到一篇文章启发了我。其实原因就是,Servlet不能访问,那要么就是路径问题,要么就是这个路径下的类所对应的.class文件找不到,因为Servlet类最终是需要通过编译生成.class文件的。那么首先想路径问题,在Eclipse上右键,查看java build path,然后切换到source选项卡,看我们编译后的文件输出路径指向哪儿,网站项目默认是指向的项目的build目录的,这里就存在问题,按照上面server.xml的配置路径来看,我们项目的根路径是在WebRoot下面,那么如果生成的.class文件是在项目的build目录下面的话,当我们直接访问servlet的时候,肯定在WebRoot目录下面找不到,那么如何处理呢?这里就需要在eclipse中将源代码编译后的输出路径指向WebRoot目录下的WEB-INF的classes目录下面,这样当我们访问项目的servlet的时候,就会在项目的WebRoot目录下去找相关的.class类。

三.问题解决参考文档

Tomcat servlet不工作问题解决_smart tomcat只初始化了spring mvc,原生servlet没生效-优快云博客


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风百草

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值