Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassNotFoundException:org.apache.catalina.connector.Response_Java_Jsp_Tomcat5.5_Catalina - Fatal编程技术网

java.lang.ClassNotFoundException:org.apache.catalina.connector.Response

java.lang.ClassNotFoundException:org.apache.catalina.connector.Response,java,jsp,tomcat5.5,catalina,Java,Jsp,Tomcat5.5,Catalina,我正在使用EclipseHelios编程运行在Tomcat5.5上的JSP和POJO。我尝试使用org.apache.catalina.connector.Response类,如下所示: 导入org.apache.catalina.connector.*; ... resp=(Response)r 其中r是HttpServletResponse的实例。Eclipse没有给出任何警告,并且项目编译良好。但是,当我浏览到包含此代码的页面时,会出现以下错误: java.lang.ClassNotFou

我正在使用EclipseHelios编程运行在Tomcat5.5上的JSP和POJO。我尝试使用org.apache.catalina.connector.Response类,如下所示:

导入org.apache.catalina.connector.*; ... resp=(Response)r

其中r是HttpServletResponse的实例。Eclipse没有给出任何警告,并且项目编译良好。但是,当我浏览到包含此代码的页面时,会出现以下错误:

java.lang.ClassNotFoundException:org.apache.catalina.connector.Response

知道出了什么问题吗

我也试过这种方法,结果也是一样的

org.apache.catalina.connector.Response resp=(org.apache.catalina.connector.Response)r

谢谢


我认为你不能用那门课。我不确定您想做什么,但是使用HttpServletResponse,您应该可以开始了。

ClassNotFoundException意味着类在编译时可用,但在运行时不可用。因此,如何在源代码中导入它并没有什么区别


我还没有检查,但Tomcat很可能不允许web应用访问其内部类。我没有检查的原因是我知道即使我能做到这一点也不是个好主意。您应该根据API(在本例中,是javax.servlet.*下的内容)而不是实现来编写代码。

显然,Tomcat设计人员并不认为Web应用程序使用其内部类是一个好主意。以下是几个可能的原因:

  • 它使您的代码依赖于Tomcat
  • 它使你的代码在面对内部细节的变化时变得脆弱;i、 这取决于Tomcat版本
  • Tomcat堆栈或webapp上下文中的其他东西可能会导致响应对象是一个包装器,而不是您所期望的类
为了使您的代码“工作”,您可能需要修改TomcatJAR文件。。。这将使它更不便于携带。有关可能有助于割断自己喉咙的更多信息,请参阅。请注意,这是Tomcat5.5特有的。。。而Tomcat6.0版本的页面则不同


我之所以要将其转换为org.apache.catalina.connector.Response,是为了在将HTTP响应头发送到客户端之前读取它们中的内容


我明白了。也许你应该实现一个定制的阀门。(这是一个Tomcat特有的东西。)或者更好的办法是,看看是否有人能帮你完成这项工作

为什么要将其转换回servletcontainer特定的类,从而使您的应用程序无法在其他servletcontainer上运行?很有可能你根本不需要这样做。我怀疑你不知道如何在网上实现波佐的答案。这是真的吗?波佐的答案是实现这一目标的唯一正确途径。如果你在相应地实现它时遇到困难,你应该询问它,而不是询问如何实现错误的解决方案。你是对的。我正试着用另一种方法来绕过波佐的方法。也许你能解释一下他给我写了什么?我不明白他的建议,他也没有给我回信。我之所以要将其转换为org.apache.catalina.connector.Response,是为了在将HTTP响应头发送到客户端之前读取它们中的内容。任何建议或澄清都是非常感谢的。从另一方面来说,这肯定是可能的,但这只是一种错误的方法:)对不起,但这个答案是无用的。