我遇到了一个奇怪的问题。对于单个HTTP请求,我的servlet的doGet方法被多次调用。每隔10-12秒重新运行一次,直到初始过程完成。
下面是我的servlet代码
private static final long serialVersionUID = WebServiceServlet.class.getCanonicalName().hashCode();
private ServletContext servletContext;
/**
* @see HttpServlet#HttpServlet()
*/
public void init(ServletConfig servletConfig) throws ServletException {
super.init(servletConfig);
servletContext = servletConfig.getServletContext();
}
/*public WebServiceServlet() {
super();
}*/
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String output = null;
/*
* Calling the Operation Manager which will decide the operation type
* and call the corresponding operation binder and set the return
* response generated in http response.
*/
// Request Processing
response.setContentType("application/json; charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(output);
out.close();
}
@Override
public void destroy() {
super.destroy();
}
下面是web.xml中的映射
<servlet>
<description></description>
<display-name>WebServiceServlet</display-name>
<servlet-name>WebServiceServlet</servlet-name>
<servlet-class>com.servlet.WebServiceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WebServiceServlet</servlet-name>
<url-pattern>/web.do</url-pattern>
</servlet-mapping>
我使用的是SEAM和JSF,但这是一个独立的servlet。日志中也没有例外。我还验证了INIT方法只被调用一次。重复的是服务方法。所有重新运行的标识哈希代码都是相同的(System.IdentityHashCode(this))。
调用是从REST API测试器发出的。呼叫方没有发生多个呼叫。重新运行是在tomcat容器上进行的。
我无计可施。还有其他人面临过这个问题吗?
我也面临过同样的问题。
只需在servlet类中保留@post
方法。注释掉@get
和@put
(如果有的话)。
谢谢
问题内容: 我正在使用带有GlassFish 3.0的JSF 2.0。 我有以下托管豆: 从 overview.xhtml 文件中,我从OverviewController中调用不同的属性或方法。 一切正常,但问题出在日志文件上: 如您所见,init()方法在同一请求中被两次调用,无缘无故。据我所知,每个带有 PostConstruct 注释的方法都会被调用一次。我错了吗? 编辑: 页面上未使用A
问题内容: 这些天,我正在学习JSF + Facelets。我有一个BackingBean和Facelet xHTML页面。当我请求facelet页时(仅一次),backing-bean-method被多次调用。 这可能是什么原因? 我看不到什么特别的东西。提前致谢。 这是方面: 这是支持豆。方法getKunden被多次调用: 问题答案: Bean的getter在那里就 可以 从视图侧 访问 模型
问题内容: 我想我在这里描述的可能有个名字,但我不知道。所以我的第一个问题是要知道这种技术的名称。 这是一个示例:假设您正在网页上实现实时搜索。每次用户在搜索框中键入内容时,您都会触发一个新的搜索查询,并且结果会尽可能频繁地更新。这是一件愚蠢的事情,因为您发送的查询会超出实际需要。每2-3个字母发送一次请求,或者每100 ms最多发送一次请求就足够了。 因此,一种技术是安排在键入键之后立即执行的查
我试图利用Java多态性。我用Spring Boot构建了一个简单的CRUD应用程序,我想用Postman测试它... 问题是,我有下一个例外:
我想用不同的预请求脚本多次运行相同的请求?不使用数据驱动(CSV)测试,我能做什么? 例如,我必须多次运行下面的GET url(每2分钟一次),但每当我运行它时,我都需要进行不同的预请求测试! {{url}}/legacy/COL 在此处输入图像描述
主要内容:1 HTTP请求方法1 HTTP请求方法 对于HTTP/1.1协议,定义了一组通用的HTTP请求方法。可以根据要求扩展这些方法。这些方法的名称区分大小写,必须使用大写字母。 请求方法 说明 GET 请求指定的页面信息,并返回实体主体。 HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可