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

在使用Resin服务器部署项目时,遇到新增servlet类后无法正常访问的问题。通过将项目编译JDK版本设置为与运行JDK版本一致,成功解决该问题。
 因为功能的需要,在项目中新加了一个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版本
2025-10-24 10:45:31.346 INFO 25365 --- [[ACTIVE] ExecuteThread: '65' for queue: 'weblogic.kernel.Default (self-tuning)'] com.smec.apps.coa.sap.SAPInterface : call method ZIF_SBS_GET_DROPDOWN,call success 2025-10-24 10:45:31.356 INFO 25365 --- [[ACTIVE] ExecuteThread: '65' for queue: 'weblogic.kernel.Default (self-tuning)'] c.s.a.c.s.impl.CoaVendorServiceImpl : sapGetDropDown listMaterialGroupFromSap Message:Get Material Group successful. 2025-10-24 10:45:35.255 INFO 25365 --- [[ACTIVE] ExecuteThread: '67' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 请求耗时 : 8636 2025-10-24 10:45:35.353 INFO 25365 --- [[ACTIVE] ExecuteThread: '72' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 请求耗时 : 8734 2025-10-24 10:45:42.005 INFO 25365 --- [[ACTIVE] ExecuteThread: '72' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.weaver.sso.filter.LoginFilter : ^_^ logout url: http://sbssso.smecs.com:8082/cas/logout?service=http://sbsfn.smecs.com/coa 2025-10-24 10:45:42.635 ERROR 25365 --- [[ACTIVE] ExecuteThread: '44' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:42.655 ERROR 25365 --- [[ACTIVE] ExecuteThread: '112' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:43.478 ERROR 25365 --- [[ACTIVE] ExecuteThread: '66' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:43.701 ERROR 25365 --- [[ACTIVE] ExecuteThread: '96' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:45.774 ERROR 25365 --- [[ACTIVE] ExecuteThread: '66' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:45.775 ERROR 25365 --- [[ACTIVE] ExecuteThread: '96' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:45.785 ERROR 25365 --- [[ACTIVE] ExecuteThread: '44' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:45.788 ERROR 25365 --- [[ACTIVE] ExecuteThread: '112' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:46.123 ERROR 25365 --- [[ACTIVE] ExecuteThread: '38' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:46.173 ERROR 25365 --- [[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:46.610 ERROR 25365 --- [[ACTIVE] ExecuteThread: '38' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:46.827 ERROR 25365 --- [[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:46.952 ERROR 25365 --- [[ACTIVE] ExecuteThread: '50' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:47.236 ERROR 25365 --- [[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:47.331 ERROR 25365 --- [[ACTIVE] ExecuteThread: '50' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.g.a.c.c.e.Error500Controller : 捕获到错误: NullPointerException: null 2025-10-24 10:45:47.692 ERROR 25365 --- [[ACTIVE] ExecuteThread: '43' for queue: 'weblogic.kernel.Default (self-tuning)'] c.o.group.apps.core.aop.ConsolePrintAop : 抛出异常 : null 2025-10-24 10:45:47.840 ERROR 25365 --- [[ACTIVE] ExecuteThread: '66' for queue: 'weblogic.kernel.Default (self-tuning)'] o.s.b.w.servlet.support.ErrorPageFilter : Cannot forward to error page for request [/coa/coaSignOffPage] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false freemarker.core.InvalidReferenceException: The following has evaluated to null or missing: ==> Session["_USER_COMPANY_"] [in template "layout/jsPlugins.ftl" at line 66, column 45] ---- Tip: It's the final [] step that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${Session["_USER_COMPANY_"].companyCo... [in template "layout/jsPlugins.ftl" at line 66, column 43] - Reached through: #include "jsPlugins.ftl" [in template "layout/layout.ftl" in macro "sectionBody" at line 39, column 1] - Reached through: @sectionBody [in template "error/500.ftl" at line 7, column 1] ---- at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.UnexpectedTypeException.newDescriptionBuilder(UnexpectedTypeException.java:85) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:48) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.NonHashException.<init>(NonHashException.java:49) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Dot._eval(Dot.java:48) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Expression.eval(Expression.java:101) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.BuiltInsForExistenceHandling$ExistenceBuiltIn.evalMaybeNonexistentTarget(BuiltInsForExistenceHandling.java:52) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.BuiltInsForExistenceHandling$if_existsBI._eval(BuiltInsForExistenceHandling.java:129) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Expression.eval(Expression.java:101) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.DollarVariable.accept(DollarVariable.java:63) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:334) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:340) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.include(Environment.java:2925) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Include.accept(Include.java:171) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:370) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:876) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.invokeMacro(Environment.java:812) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:334) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.visit(Environment.java:340) ~[freemarker-2.3.30.jar:2.3.30] at freemarker.core.Environment.process(Environment.java:313) ~[freemarker-2.3.30.j 啥错
最新发布
10-25
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值