我的 Web 服务器容器是 Tomcat 6.0.14
JVM 1.6.0_17-b04
BlazeDS 3.2.0.3978
我从同一台本地机器通过 AMF 向 BlazeDS 服务器发送请求,只有第一个请求需要大约 10 秒才能完成。每个后续请求都正确进行(非常快,不到 0.5 秒)。有人知道响应如此缓慢的原因是什么吗?
我是一名开发人员,不是管理员,所以请耐心等待:)
答案1
类加载和用户状态创建是最明显的两个可能原因。
答案2
是的,一般类加载很可能是罪魁祸首。您是否在 web.xml 中将 messagebroker servlet 设置为在启动时加载?如果没有,这可能有助于在服务器启动时在第一个请求到来之前加载一堆内容。
答案3
在服务器 web.xml 文件中,我只有 2 个默认注册的 servlet(org.apache.catalina.servlets.DefaultServlet)和 jsp(org.apache.jasper.servlet.JspServlet)
我的应用程序的 Web.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" 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">
<display-name>Kums</display-name>
<context-param>
<param-name>flex.class.path</param-name>
<param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value>
</context-param>
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>
<param-value>/WEB-INF/flex/services-config.xml</param-value>
</init-param>
<init-param>
<param-name>flex.write.path</param-name>
<param-value>/WEB-INF/flex</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
当我将 MessageBrookerServlet 的 servlet 和 servlet 映射定义从应用程序 web.xml 复制到服务器 web.xml 时,tomcat 在启动时抛出异常 ClassNotFoundException。这里我上传了整个 tomcat 启动调试输出。
谢谢