Java 如何摆脱:HTTP状态405-此URL不支持HTTP方法get?

Java 如何摆脱:HTTP状态405-此URL不支持HTTP方法get?,java,web-services,http,web-applications,servlets,Java,Web Services,Http,Web Applications,Servlets,在过去的几个小时里,我一直在为这个问题伤脑筋。这是我第一次尝试编写web应用程序并将其部署到ApacheTomcat web容器。我遵循一个简单的教程,然后得到这个错误。尝试了一些解决方案,就像其他帖子中关于同一问题的文章一样,但到目前为止似乎都没有奏效。我分别粘贴和web.xml、website.xml和我的代码文件的片段。请看看我是否做错了什么。提前谢谢 web.xml: <?xml version="1.0"?> <web-app xmlns="http://j

在过去的几个小时里,我一直在为这个问题伤脑筋。这是我第一次尝试编写web应用程序并将其部署到ApacheTomcat web容器。我遵循一个简单的教程,然后得到这个错误。尝试了一些解决方案,就像其他帖子中关于同一问题的文章一样,但到目前为止似乎都没有奏效。我分别粘贴和web.xml、website.xml和我的代码文件的片段。请看看我是否做错了什么。提前谢谢

web.xml:

<?xml version="1.0"?>
<web-app
     xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
     version="2.4">
   <servlet>
      <servlet-name>home</servlet-name>
      <servlet-class>website.web.TestServlet</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>home</servlet-name>
      <url-pattern>/home</url-pattern>
   </servlet-mapping>
</web-app>
<Context path="/website" docBase="C:\Users\Priyankar\workspace\website\web" />
HTTP Status 500 - Error instantiating servlet class website.web.TestServlet

type Exception report

message Error instantiating servlet class website.web.TestServlet

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class website.web.TestServlet
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)

root cause

java.lang.ClassNotFoundException: website.web.TestServlet
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.41 logs.
Apache Tomcat/7.0.41
管理器日志

0:0:0:0:0:0:0:1 - admin [21/Jun/2013:13:25:40 -0500] "POST /manager/html/deploy?org.apache.catalina.filters.CSRF_NONCE=435C56002971030D163AA1C798F91722 HTTP/1.1" 200 14076
0:0:0:0:0:0:0:1 - - [21/Jun/2013:13:28:50 -0500] "GET /website/home HTTP/1.1" 405 1065
Jun 21, 2013 1:25:40 PM org.apache.catalina.core.ApplicationContext log
INFO: HTMLManager: init: Associated with Deployer 'Catalina:type=Deployer,host=localhost'
Jun 21, 2013 1:25:40 PM org.apache.catalina.core.ApplicationContext log
INFO: HTMLManager: init: Global resources are available
Jun 21, 2013 1:25:40 PM org.apache.catalina.core.ApplicationContext log
INFO: HTMLManager: install: Installing context configuration at 'C:\Users\Priyankar\workspace\website\website.xml'
Jun 21, 2013 1:25:40 PM org.apache.catalina.core.ApplicationContext log
INFO: HTMLManager: list: Listing contexts for virtual host 'localhost'
其余的对我来说似乎是正常的,除非您想查看任何特定的日志文件

错误消息:

<?xml version="1.0"?>
<web-app
     xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
     version="2.4">
   <servlet>
      <servlet-name>home</servlet-name>
      <servlet-class>website.web.TestServlet</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>home</servlet-name>
      <url-pattern>/home</url-pattern>
   </servlet-mapping>
</web-app>
<Context path="/website" docBase="C:\Users\Priyankar\workspace\website\web" />
HTTP Status 500 - Error instantiating servlet class website.web.TestServlet

type Exception report

message Error instantiating servlet class website.web.TestServlet

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class website.web.TestServlet
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)

root cause

java.lang.ClassNotFoundException: website.web.TestServlet
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.41 logs.
Apache Tomcat/7.0.41
以下是包资源管理器中项目树的屏幕截图:


屏幕截图中的代码是针对名为
website.web.TestServlet
的Java类的,但是您的
web.xml
和发布的代码是
website.web.HomeServlet

您提供的类名是TestServlet,您的web.xml是HomeServlet。因此,当您点击URL时,它无法找到任何称为HomeServlet的内容

有点离题,但相关:如果您有

<load-on-startup>0</load-on-startup>
0
标签


这基本上是在部署期间加载Servlet,如果没有找到任何Servlet,它将抛出。如果您不提供该标记,服务器会在任何时候加载。

发布您发出此GET请求的部分。我想我希望看到编写器关闭……localhost:8080/website/home@DaveHowes我现在试过了。也不起作用。你在Tomcat日志中看到了什么有趣的东西吗?嗨,我在web.xml文件中将名称更改为TestServlet,但忘了在这里编辑它。现在编辑xml文件以反映更改。谢谢。我现在就试试。我已经编辑了实际的xml文件,在部署web应用程序时,它说TestServlet不是HomeServlet。只是忘了在这里编辑。很抱歉