无法访问servlet,404找不到

时间:2010-10-08 03:57:11

标签: java tomcat servlets

编辑10/8/10 @ 8:20 am est - 因为我无法在prod中完成这项工作,所以我会尝试让它在测试中失败。

编辑10/8/10 @ 4:30 pm - 享受美好时光!不。好吧,地狱继续。我今天早些时候了解到,我们也将Apache httpd作为一个单独的进程运行。所以我们想也许我们不会以某种方式将请求转发给Tomcat。我没有在我的测试环境中运行httpd。

编辑10/8/10 @ 8:20 pm - 发现服务器上还运行了httpd。 httpd只是将jsp请求转发给Tomcat。 Apache正在吃servlet请求,试图提供静态页面(?)并且当然失败了。我从worker2.properties中删除了bajezus,使httpd转发请求。哎哟。


Tomcat 5.5,RedHat linux。

我创建了一个servlet,当然在我们的测试环境中运行良好。我把它移到生产中我失败了404错误。根据catalina日志,servlet似乎正确加载。

我在智慧结束 - 我不知道如何解决这个问题。这几乎就像我在某个地方错误拼写了servlet这个名字。

这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>Pdf Servlet</display-name>
    <servlet>
        <servlet-name>pdf</servlet-name>
        <servlet-class>com.thop.exp.PdfServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>pdf</servlet-name>
        <url-pattern>/pdf</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

我正在浏览www.myurl.net/PdfServlet/pdf。我相信我已经扎根了。 war文件的名称是PdfServlet.war。

关于问题的任何想法,或者我能做些什么来获得想法的想法?


这是日志。

INFO: Installing web application at context path /PdfServlet from URL file:/mnt/san00/aaadata_root/ROOT/PdfServlet
Oct 7, 2010 11:32:50 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Oct 7, 2010 11:32:50 PM org.apache.catalina.startup.ContextConfig applicationConfig
INFO: Missing application web.xml, using defaults only StandardEngine[Catalina].StandardHost[aaa.net].StandardContext[]
Oct 7, 2010 11:32:50 PM org.apache.catalina.core.StandardHost getDeployer
INFO: Create Host deployer for direct deployment ( non-jmx )
Oct 7, 2010 11:32:50 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Oct 7, 2010 11:32:50 PM org.apache.jk.common.ChannelSocket init
INFO: JK2: ajp13 listening on /0.0.0.0:8009
Oct 7, 2010 11:32:50 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/25  config=/usr/share/tomcat5/conf/jk2.properties
Oct 7, 2010 11:32:50 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4325 ms

2 个答案:

答案 0 :(得分:1)

Tomcat 5.5是servlet 2.4 container,你已经指定你有2.5 web.xml。

如果测试中的Tomcat版本比5.5(6或7)更新,则尝试将web.xml降低到2.4。


编辑:好的,然后再次尝试从web.xml中删除/ pdf,看看是否可以从index.jsp文件中调用com.thop.exp.PdfServlet类。

答案 1 :(得分:1)

我建议您尝试将您的网络应用程序打包为WAR文件 - 将其命名为PDFServlet.war。

将它放入Tomcat / webapps目录。

相关网址为http://www.myurl.net:8080/PdfServlet/pdf

我假设您已经让Tomcat在端口8080上侦听;如果没有,请添加您自己的端口号。

无法指定用户想要的PDF吗?或者它始终是相同的PDF?