Servlet 解析出错(is not a known servlet)

在使用Resin服务器部署项目时,遇到新增servlet类后无法正常访问的问题。通过将项目编译JDK版本设置为与运行JDK版本一致,成功解决该问题。

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

 因为功能的需要,在项目中新加了一个servlet类,在本地调试好后,上传至服务器,一启动容器就报如下的错误:

com.caucho.config.LineConfigException: 

WEB-INF/web.xml:140: `com.xy.servlet.TzServlet' is not a known servlet.  Servlets belong in the classpath, often in WEB-INF/classes.


很奇怪的问题,服务器上有很多servlet类,就新添加的这个报错;并且在自己电脑的MyEclipse上面运行也很正常,没有任何问题,新加的servlet也可以正常访问,但是服务器上就是不行,检查了很多遍,类,包,路径 都 没问题,甚至换了类名重写也是一样报错,网上找了很久相关资料都是关于jar包,路径,或web.xml配置方面的,都没用

公司linux服务器上WEB容器使用的是resin,使用 java -version 发现服务器上的JDK版本为1.4的然而我们通常使用的JDK都 是1.5或1.6的,如果把整个项目的JDK换成1.4的也不可能,因为有些JAR包或函数必须要用1.4以上的JDK才行。所以解决办法就是把项目的编译级别设置为1.4:
MyEclipse中右击项目-->"Properties"-->"Java Compiler" ,选中"Enable project specific setting","Compiler compliance level" 设置为 1.4

问题完美解决了

即:编译JDK不能高于运行JDK版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值