问题标签 [servlet-3.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8210 浏览

java - 如何避免请求设置 ASYNC_SUPPORTED=true 在 Tomcat 7 上启用异步 servlet 3.0 处理?

在这个问题上报告了一个问题后,找到了一个解决方案:

这似乎有点奇怪,并不是真正的“可移植”代码(它不会受到伤害,但是......)。它似乎特定于 Tomcat 7。我使用的是 NetBeans 7.0.1 提供的 Tomcat 7.0.14。

我找不到表明有必要在 servlet 3.0 中使用 catalina 属性启用异步请求处理的文档。我也找不到说明在 Tomcat 配置级别也需要一些特殊的文档。

有没有办法避免ASYNC_SUPPORTED=true在每个请求中设置以在 Tomcat 7 中启用异步 servlet 3.0 处理?

0 投票
3 回答
1071 浏览

node.js - servlet 3.0,node.js,并发方法

最好的方法是什么:servlet 3.0 或 node.js?

我正在考虑使用一些最现代技术的高并发应用程序架构。

我分为 servlet3 和 node.js。我正在考虑为本地(利基)市场开发拍卖系统。

有没有一些比较发展这些技术?更好的是:这里有人在(高)并发应用程序中测试过这些方法吗?

提前致谢。

0 投票
1 回答
1689 浏览

spring - Spring 3.1 - 使用 Jetty Maven 插件的基于 Servlet 3 代码的配置

我尝试使用注解来集成 Spring 3.1 的新特性来指定 Web 应用程序的配置信息。

我设置了 maven-jetty-plugin 版本 8.0.4.v20111024 来运行我的应用程序。使用 mvn jetty:run 命令启动码头时,一切似乎都正常并且设置正确。但是当通过浏览器访问应用程序时,只有默认 servlet 的输出。

这似乎是一个类似的问题,tomcat 在以前的版本中 (<=7.0.14) https://issues.apache.org/bugzilla/show_bug.cgi?id=51278

目前,我不能使用码头,我不得不切换到 tomcat-plugin 将我的应用程序部署到 tomcat。

有没有人有任何建议,当没有 web.xml 可用时如何覆盖码头默认 servlet?

0 投票
1 回答
1292 浏览

web-services - Java EE 6 服务器推送

背景

我很乐意为各种服务提供商建立一个中央预约系统。这是基于 GlassFish 3.1.1 上的 Java EE 6 构建的,利用 JSF 2、EJB 3.1 和其他 JEE6 标准。每个服务提供商都有自己的预约设备,在他们自己的连接到 Internet 的服务器上运行,但目前他们没有任何接口让他们的患者自己预约。

我的系统将通过我定义的 API 在服务提供商的系统上同步预约(响应用户请求),该 API 涉及通过 HTTP 流式传输 XML。这些预约预约请求是同步的,因为服务提供商将继续以老式方式(通过电话/柜台)直接在其系统中预约预约,并且无论出于何种原因,他们的系统保留拒绝此类请求的权利(以防止重复预约和其他原因)。因此,他们的系统保留了作为真相来源的地位。

出于显而易见的原因(主要是安全性),API 连接是由服务提供商的系统建立的。这意味着服务器(我的系统)正在发送请求,客户端(他们的系统)正在发送响应。

问题

我需要一些关于如何在 GlassFish 3.1.1 上使用 Java EE 6 通过 HTTP API 构建服务器推送 XML 的建议。我想到了一些不太理想的选择。其中一个涉及一个单例 bean,其中包含我的约会 ID 到他们的约会预订响应的映射。在这种情况下,我的系统会在有限的时间内(例如最多 10 秒)轮询地图,直到找到匹配的响应,然后返回响应,然后最终在 JSF UI 中处理该响应。同时,API servlet(或者可能是 JAX-RS Web 服务)轮询单例 bean 的请求,将它们转换为 XML 并将它们流式传输到服务提供者的输出流。

我确信必须有许多更好的方法来做到这一点,而不涉及每个连接的线程、阻塞、轮询等。

想法?

更新

我倾向于 Atmosphere/Jersey,但现在我意识到阻塞 I/O 在 NPTL 下是相当可扩展的,所以我在这方面很灵活。

0 投票
2 回答
8685 浏览

java - Tomcat 7异步处理失败 - 仅同时处理一个请求

我试图使用 Servlet API 3 中定义的异步处理来实现 COMET 聊天。它不起作用 - 聊天被阻止,所以我创建了调试 servlet 来仅测试异步部分。

这是我的 doGet 方法:

我将请求项目放入队列中,并且有一个线程正在运行,它将在指定超时后获取项目并将响应发送到 AsyncContext,打印有关它的消息。问题是,线程被阻塞,直到 AsyncContext 得到响应。这是在浏览器中请求 4 个页面加载后在我的日志中可见的内容:

正如所见,下一个 doGet 方法仅在前一个请求(理论上是异步的)应答后才被调用。所以整个异步事情根本不起作用!这是 web.xml 声明:

我正在尽一切可能在互联网上找到。我看不出犯错的地方。我发现在 servlet.xml 中配置没有什么特别之处。所以问题是,为什么它不能正常工作?

0 投票
1 回答
14852 浏览

hibernate - 使用 Spring 3 和 Servlet 3 配置 OpenSessionInViewFilter

我想配置OpenSessionInViewFilter为能够在视图中使用休眠延迟初始化,所以我在 web.xml 中添加了过滤器定义,但它不起作用我仍然得到相同的延迟初始化异常,这就是我所做的:

应用上下文:

请告知为什么我仍然收到延迟初始化异常,在此先感谢。

0 投票
1 回答
558 浏览

initialization - 从过滤器访问 servlet 初始化参数

我有一个这样的servlet:

在这个 servlet 上,我放置了一个过滤器:

问题是,即使我在 MyServlet 中设置了 @WebInitParameter 程序也会打印出一个空字符串(请参阅注释行//problem come here in MyFilter)。我验证并看到servlet 的init()方法在doFilter()之前执行。那么任何人都可以在这个问题上照亮我吗?为什么initParameter “name” 为空,如果它设置为一个值?

谢谢!

0 投票
2 回答
4168 浏览

java - 如何将此java代码转换为servlet

我是 servlet 的新手。我正在尝试使用带有 JDBC 和 OJDBC 的 java 连接到数据库。我已经为此编写了一个 java 代码。现在我需要在 Tomcat 服务器上运行它。所以我选择了 servlet。我使用 Netbeans IDE 完成了这项工作,在那里我选择了 servlet,并在 web.xml 中将类名作为 servlet 名称。我不知道我在哪里做错了。所以,我发布了有效的 java 代码:

我想知道如何将此代码转换为 Servlet?

0 投票
1 回答
100 浏览

tomcat - 异步处理servletrequest以快速响应客户端并在tomcat后台处理庞大的任务

我有一个 servlet,它在客户端请求时将多封邮件发送到不同的地址。

由于发送邮件需要很长时间,因此客户端必须等待才能收到响应。我想异步处理邮件的发送,以更快地将响应发送回客户端。

此外,邮件的发送可以延迟到几分钟,并且不必是实时的。我不想在数据库中保存任何信息,只想在应用程序中处理。我想到的解决方案如下:

当客户端请求此 servlet 时,servlet 会将邮件列表和内容作为属性添加到 ServletContext 中并将响应发送回客户端 启动时加载一个帮助 servlet 并生成一个 timertask 线程,该线程在每次(例如) 10 分钟,读取 servletcontext 属性,发送邮件并删除属性。

请建议这是否是一个好的解决方案。如果有的话,也提出一个更好的。

0 投票
1 回答
1323 浏览

jakarta-ee - 使用 JBoss6 和 CXF Continuation API 的非阻塞 Web 服务端点

我目前正在尝试设置一个 Web 服务端点(在 JBoss AS 6.1.0.FINAL 环境中),以使客户端能够长轮询服务器端事件,而不会阻塞服务器端的侦听器线程。

由于似乎没有标准解决方案,我发现这篇关于 CXF 延续的博客文章(旁边是 JBoss 中的 WS-Impl.)。

我可以将示例传输为 JAX-WS

延续 API 来自

这是一个简化的例子。的调用c.suspend(10000);应该将当前的 servlet 调用标记为 State.SUSPENDED。十秒后,暂停应该超时,并且应该重新调用请求c.isNew() == false。(在现实世界的示例中,Continuation 可以传递给 JMS-Listener Bean 或有状态的 CDI-Eventlistener,并且c.setObject(event); c.resume();一旦事件可用并准备好交付,就会由事件调度程序调用)

CXF 拦截器链应该中断正在执行的线程SuspendedInvocationException并重新安排 web 服务调用。到目前为止,它在 JBoss 6.1.0 FINAL 上编译和部署良好。wsdl 完美交付。

但是:当我从 Webservice-Client 调用 getEvents() 时,SuspendedInvocationException似乎没有被正确捕获。整个调用因以下堆栈跟踪而崩溃:

所以最后我的问题是:有没有人有过 CXF Continuation 和 WS 的经验,可以给我一个提示,这个尝试有什么问题?

我真的不明白为什么在PhaseInterceptorChain.doIntercept中重新抛出异常。

亲切的问候, avithan