`
zhonglunshun
  • 浏览: 138122 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

405: HTTP method GET is not supported by this URL

405 
阅读更多

405: HTTP method GET is not supported by this URL

 

先看错误代码:

 

public class WXSenderServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		super.doGet(req, resp);
		resp.getWriter().print("WXSenderServlet----doGet()");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		super.doPost(req, resp);
		resp.getWriter().print("WXSenderServlet----doPost()");
	}

}

 继承了HttpServlet而且实现了两个方法,并且:

<!-- Servlets -->
    <servlet>
        <servlet-name>WXSenderServlet</servlet-name>
        <servlet-class>pa.wechat.plugin.servlet.WXSenderServlet</servlet-class>
    </servlet>

    <!-- Servlet mappings  url-pattern必须小写-->
    <servlet-mapping>
        <servlet-name>WXSenderServlet</servlet-name>
        <url-pattern>/wechatsender</url-pattern>
    </servlet-mapping>

 那为什么还会有错误呢?

 

 

哈哈哈,原来是因为super.doGet(req, resp);里面不是空的。

 

看一位网友的回答的不错,照抄了过来:

 

The HttpServlet basically follows the template method pattern where all non-overridden HTTP methods returns a HTTP 405 error "Method not supported". When you override such a method, you should not call super method, because you would otherwise still get the HTTP 405 error. The same story goes on for your doPost() method.

This also applies on service() by the way, but that does technically not harm in this construct since you need it to let the default implementation execute the proper methods. Actually, the whole service() method is unnecessary for you, you can just remove the entire method from your servlet.

The super.init(); is also unnecessary. It's is only necessary when you override the init(ServletConfig), because otherwise the ServletConfig wouldn't be set. This is alsoexplicitly mentioned in the javadoc. It's the only method which requires a super call.


Unrelated to the concrete problem, spawning a thread in a servlet like that is a bad idea. For more detail, start reading this answer.

 

 

 

恩,就是这样的。

1
0
分享到:
评论

相关推荐

    java解决405 - HTTP method GET is not supported by this URL

    当您遇到"405 - HTTP method GET is not supported by this URL"这样的问题时,通常意味着您的服务器端代码没有正确处理GET请求,或者请求被误定向到了一个不期望GET方法的Servlet。 首先,我们需要理解HTTP协议中...

    Http-servlet请求源码

    本文将深入探讨HTTP Servlet请求的源码实现,并针对"HTTP method GET is not supported by this URL"这一常见错误进行分析和解决。 首先,让我们理解HTTP Servlet的工作原理。每当一个HTTP请求到达Web服务器时,...

    Senfore_DragDrop_v4.1

    This is caused by a quirk in WinZip; Apparently WinZip doesn't like IDataObject.GetData to be called before IDropTarget.Drop is called. ------------------------------------------- 5. Support and ...

    servlet2.4doc

    Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged. encodeUrl(String) - Method in class javax.servlet....

    php.ini-development

    documents, however this remains supported for backward compatibility reasons. ; Note that this directive does not control the , which can be ; used regardless of this directive. ; Default Value: On ;...

    JSP Simple Examples

    In this program we are going to know how the server determines whether the password entered by the user is correct or not. This whole process is controlled on the server side. Multiple forms in jsp ...

    EurekaLog_7.5.0.0_Enterprise

    Later is supported when map2dbg.exe tool is placed in \Bin folder of EurekaLog installation (separate download is required) 5)....Added: Exception2HRESULT in EAppDLL to simplify developing DLLs with ...

    Java邮件开发Fundamentals of the JavaMail API

    the ability to see how many new mail messages they have, are not supported by POP at all. These capabilities are built into programs like Eudora or Microsoft Outlook, which remember things like the ...

    asp.net mvc

    This is a Release Candidate (RC) release and is not officially supported. If you have questions about working with this release, post them to the ASP.NET MVC forum (http://forums.asp.net/1146.aspx), ...

    hls.min.js

    e.a=a},function(t,e){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(t){return"function"==typeof t}function a(t){return"number"==typeof t}function n...

    Bochs - The cross platform IA-32 (x86) emulator

    - new hdimage method get_capabilities() that can return special flags - vmware3, vmware4 and vvfat classes now return HDIMAGE_HAS_GEOMETRY flag - other disk image modes by default return HDIMAGE_...

    PHP获取所在城市JS方法,开箱即用

    console.log('Geolocation is not supported by this browser.'); } ``` 这段代码首先检查浏览器是否支持Geolocation API,如果支持,则调用`getCurrentPosition`获取位置信息,然后通过`fetch`函数向服务器发送...

    hibernate.properties

    ## Derby (not supported!) #hibernate.dialect org.hibernate.dialect.DerbyDialect #hibernate.connection.driver_class org.apache.derby.jdbc.EmbeddedDriver #hibernate.connection.username #hibernate....

    ZendFramework中文文档

    14.1.3. 使用静态 get() 方法 14.2. 标准过滤器类 14.2.1. Alnum 14.2.2. Alpha 14.2.3. BaseName 14.2.4. Digits 14.2.5. Dir 14.2.6. HtmlEntities 14.2.7. Int 14.2.8. RealPath 14.2.9. StringToLower...

Global site tag (gtag.js) - Google Analytics