我使用Tomcat7
和OracleJDK1.7
以及NeatBeans 7.3
开发了一个Java web应用程序。我的应用程序在本地pc上运行,没有任何错误。
但是在我托管了我的应用程序之后,我无法访问servlet。它给了我404
错误。我不习惯web。xml
在我的应用程序中映射servlet。我使用了注释
。
托管服务器使用Tomcat7
和OpenJDK1.7
。
可能是什么问题?我该怎么解决这个问题?
新更新
我购买主机的地方给了我上传文件的cPanel
。tomcat中没有上传war
文件的地方,也没有上传文件到webapps
director的地方。所以我把文件上传到了public_html
目录。我认为这可能就是问题所在。因为当我试图访问像www.mysite这样的servlet时。com/A
,服务器在root
directoy中搜索。但事实上它并不存在。所以它给出了404
错误。
我想这可能是问题所在。有什么建议吗?
更新
注释如下所示
@WebServlet(name = "AddCustomer", urlPatterns = {"/AddCustomer"})
从DropBox下载Servlet。
目录结构。
检查以下各项:
最后,也许你可以在网上发布部分内容。xml和您调用的url
编辑
这是你的代码树,但是tomcat webapp目录中部署了什么?您的编译类是否在WEB-INF下?
编辑你收到的关于webapp以public_html托管的新信息吗?我建议你联系托管服务器提供商的资源,以了解如何正确部署——可能根本不可能。
你可以尝试从亚马逊获得为期一年的EC2试用版
注释不能“开箱即用”,您仍然需要告诉Tomcat查找带注释的Servlet
类。要做到这一点,你需要使用正确版本的网站。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一样,它可能具有项目属性,允许您将动态Web项目方面指定为Servlet 3.0值,该值被翻译为上面显示的web.xml
行。
您应该检查项目的WEB-INF
文件夹中的WEB。xml
或尝试正确导出它——WAR文件应该(必须?)导出包含WEB-INF/WEB。xml
文件。
你可以在网站上使用Servlet 3.0版本来“告诉它”。xml
标题。对于较早的版本,Tomcat不需要注释标记的servlet,也就是说,您必须在XML中手动列出它们。
至于更新后的问题——由于Apache HTTP服务器(可能是安装的)不理解WAR或JSP文件,您得到的是404,您需要将其配置为将请求转发到Tomcat,Tomcat可能位于另一个端口(默认为8080)——这被称为AJP或HTTP代理,也就是说,Apache服务器充当Tomcat的前端代理。在Stackoverflow这里有manny关于这个问题的答案。您不会将WAR文件部署到public_html
,因为这是部署PHP或Perl webapps的地方。
如果您真的安装了Tomcat,您应该咨询您的托管提供商,它在哪个端口以及在哪里部署您的JavaWeb应用程序。
在“将Tomcatina\local类部署到您的项目中”之后,请检查“是否将Tomcatina\localcat类部署到您的项目中”。如果有课程,那就不应该是问题。
我试图使用Eclipse IDE在Apache Tomcat上执行一个简单的servlet。servlet本身正在执行,但当我试图调用html表单时,我将通过该表单向servlet传递用户数据,我得到错误404。我的做法是不正确的吗? 更新1:文件web.xml
我制作了Spring web应用程序示例项目。我做了所有的基本配置,基于java的配置和servlet 3.0web.xml.但在所有这些配置后,当我打网址它给我404错误。会有什么问题。有人能帮帮我吗? 网状物xml: 配置java类: 控制器: 当我试图访问这个网址 它给我404错误。虽然当我直接访问jsp页面时,它显示该页面。
我试图按照这里的教程来构建我的第一个tomcat应用程序。 虽然jsp部分工作良好,但我得到了Java servlet部分的404。这里是我的相关文件和目录结构。有人能指出我做错了什么吗? web.xml index.html Hello_World_Java包示例; 导入java.io.IOException;导入java.io.PrintWriter;导入javax.servlet.Servl
问题内容: 我在我的应用程序的servlet中使用以下代码 当我运行应用程序并调用servlet时,出现以下错误 我已经在Java版本为JDK 1.6.20的Linux机器上托管了该应用程序。 是什么原因引起的问题… 是编写代码的类,是在上述类中调用方法的servlet … 问题答案: 要在服务器端应用程序中使用AWT类,我相信您需要在“无头”模式下运行。将servlet容器的启动更改为包括: (
我在Spring MVC中开发了一个应用程序,当我直接从eclipse通过run as->run On server运行它时,它工作得很好。 但是现在我想要将war部署到Tomcat文件夹并从那里运行它。我已经对此做了更改,war正在正确地部署到所需的tomcat文件夹中,但当我启动tomcat服务器并在浏览器中访问应用程序url时,它会给我404错误。服务器正在启动,没有任何异常。 下面是项目结
因此,我目前正在尝试测试一个项目,它的方面我已经改变了,即我添加了一个动态web组件到它。为此,我决定创建一个基本的html表单,并将servlet与之关联。 错误消息: 编辑,现在工作的一个servlet也停止工作,抛出相同的错误。如果有帮助,我尝试从eclipse运行它,方法是右键单击html页面,然后选择在服务器上运行它。