簡體   English   中英

Tomcat通過Servlet給出404錯誤

[英]Tomcat giving 404 error with servlets

我已經使用Tomcat 7和帶有NeatBeans 7.3 Oracle JDK 1.7開發了Java Web應用程序。 我的應用程序在本地PC上運行,沒有任何錯誤。

但是在托管應用程序之后,我無法訪問servlet。 它給我404錯誤。 我沒有在應用程序中使用web.xml來映射servlet。 我使用了annotation

托管服務器使用Tomcat 7Open JDK 1.7

可能是什么問題 ? 我該如何解決?

新更新

我購買托管的地方給了我cPanel上傳文件。 在tomcat中沒有地方可以上傳war文件,也沒有地方可以將文件上傳到webapps Director中。 所以我將文件上傳到public_html目錄。 我認為這可能是問題。 因為當我嘗試訪問諸如www.mysite.com/A servlet時,服務器會在root目錄目錄中搜索該目錄。 但實際上它不存在。 所以它給出了404錯誤。

我認為這可能是問題所在。 有什么建議嗎?

更新

注釋如下

@WebServlet(name = "AddCustomer", urlPatterns = {"/AddCustomer"})

DropBox下載Servlet。

目錄結構。

IMG

將項目部署到tomcat之后,如果位置中存在類,則簽入到“ tomcat7 \\ work \\ Catalina \\ localhost \\您的應用程序”。 如果有課程,那應該不是問題。

檢查以下內容:

  • 是tomcat / webapps下面的應用
  • 你能從tomcat管理器看到嗎
  • 日志中的任何錯誤

最后也許發布您的web.xml的一部分以及您正在調用的URL

編輯

所以這是您的代碼樹,但是什么已部署到您的tomcat webapp目錄中? 您的編譯類是否在WEB-INF下?

編輯是否收到了有關public_html中托管的Web應用程序的新信息,建議您與托管服務器提供商的資源聯系,以了解如何正確部署-甚至不可能。

您可以嘗試從亞馬遜獲得EC2的一年試用期

批注“開箱即用”不起作用,您仍然必須tell Tomcat查找帶有批注的Servlet類。 為此,您需要使用正確版本的web.xml

<web-app 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_3_0.xsd"  
  version="3.0">

我沒有使用過NetBeans,但像Eclipse一樣,它可能具有項目屬性,可讓您將Dynamic Web Project方面指定為Servlet 3.0值,該值將轉換為上面顯示的web.xml行。

您應該檢查項目的WEB-INF文件夾中的web.xml或嘗試正確導出它-WAR文件應(必須?)包含WEB-INF/web.xml文件。

UPDATE

您可以通過在web.xml標頭中使用Servlet 3.0版本來“告訴它”。 對於較早的版本,Tomcat不會期望帶有注釋標記的servlet,即您必須在XML中手動列出它們。

至於更新的問題-因為Apache HTTP Server(可能是已安裝的)不理解WAR或JSP文件,所以您將得到404,您需要對其進行配置以將請求轉發到可能在另一個端口上的Tomcat (默認值為8080)-這稱為AJP或HTTP代理 ,即Apache服務器充當Tomcat的前端代理。 在Stackoverflow上有關於該主題的答案。 您無需將WAR文件部署到public_html因為這是PHP或Perl Web應用程序的部署位置。

您應該向托管服務提供商咨詢是否確實安裝了Tomcat,它在哪個端口以及在何處部署Java Web應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM