我有一个Java Web应用程序,它将VXML页面提供给VXML解释器。在测试实验室的持续流量条件下,Tomcat(6.0.32)似乎偶尔会选择错误的servlet来处理以下页面请求:
http://localhost/<myapp>/Main.vxml?<some_query_params_that_get_ignored>
以下是我的web.xml文件中定义的完整servlet列表。根据这一点,第一个servlet应该总是处理上面的URL,但在很小的情况下(在一个周末的过程中100K +请求中低于0.1%),Tomcat将它路由到第二个servlet(CometControllerServlet)。 p>
<servlet>
<servlet-name>MainVXML</servlet-name>
<jsp-file>/WEB-INF/jsp/vxml/Main.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>MainVXML</servlet-name>
<url-pattern>/Main.vxml</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>ABPAsync</servlet-name>
<servlet-class>com.avaya.cc.aaeplite.web.CometControllerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ABPAsync</servlet-name>
<url-pattern>/async/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>ABP</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ABP</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
最近一次流量运行的跟踪输出中的以下事件表明这些......的时间有点分散,因此难以读取任何内容。
27 16:29:54.880 ERROR <http-6080-exec-2 > [ite.web.CometControllerServlet] perform() Invalid Request Type: Main.vxml
27 17:36:40.773 ERROR <http-6080-exec-2 > [ite.web.CometControllerServlet] perform() Invalid Request Type: Main.vxml
27 19:08:18.705 ERROR <http-6080-exec-4 > [ite.web.CometControllerServlet] perform() Invalid Request Type: Main.vxml
27 19:19:58.799 ERROR <http-6080-exec-5 > [ite.web.CometControllerServlet] perform() Invalid Request Type: Main.vxml
27 19:49:14.688 ERROR <http-6080-exec-1 > [ite.web.CometControllerServlet] perform() Invalid Request Type: Main.vxml
27 19:49:34.721 ERROR <http-6080-exec-3 > [ite.web.CometControllerServlet] perform() Invalid Request Type: Main.vxml
28 07:15:30.835 ERROR <http-6080-exec-7 > [ite.web.CometControllerServlet] perform() Invalid Request Type: Main.vxml
欣赏人们可能对此发生的任何想法。
谢谢, 约翰