ColdFusion 11中对CFC发起HEAD请求持续返回500错误求助
问题:ColdFusion 11 CFC处理HEAD请求返回500错误
问题背景
- 第三方存在每日运行的固定流程,无法修改,该流程会对我方多个CFC发起HEAD类型请求
- 所有HEAD请求均返回
HTTP/1.1 500 Internal Server Error,但改用GET请求时可正常返回"OK"
请求示例
- curl命令:
curl --location --head https://example.com/bla/sample.cfc?method=test - ColdFusion测试请求:
<cfhttp method="head" url="https://example.com/bla/sample.cfc?method=test">
测试用CFC代码
<cfcomponent output="false"> <cffunction name="test" access="remote" output="false" returntype="string" returnformat="plain"> <cfreturn "OK"> </cffunction> </cfcomponent>
相关日志信息
coldfusion-out.log
[ajp-bio-8014-exec-4] - Starting HTTP request {URL='https://example.com/bla/sample.cfc?method=test', method='head'} [ajp-bio-8014-exec-4] - HTTP request completed {Status Code=500 ,Time taken=274 ms}
coldfusion-error.log
org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [CFCServlet] in context with path [] threw exception [Servlet execution threw an exception] with root cause java.lang.NoClassDefFoundError: javax/servlet/http/NoBodyResponse at javax.servlet.http.HttpServlet.doHead(HttpServlet.java:245) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:437) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:197) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
注:exception.log与server.log文件中无相关告警信息
需求
恳请提供解决HEAD请求返回500错误的方案,第三方流程无法修改。
内容的提问来源于stack exchange,提问作者Ariel Maioli
相关产品推荐
相关产品推荐

