问题标签 [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.
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 处理?
node.js - servlet 3.0,node.js,并发方法
最好的方法是什么:servlet 3.0 或 node.js?
我正在考虑使用一些最现代技术的高并发应用程序架构。
我分为 servlet3 和 node.js。我正在考虑为本地(利基)市场开发拍卖系统。
有没有一些比较发展这些技术?更好的是:这里有人在(高)并发应用程序中测试过这些方法吗?
提前致谢。
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?
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 下是相当可扩展的,所以我在这方面很灵活。
java - Tomcat 7异步处理失败 - 仅同时处理一个请求
我试图使用 Servlet API 3 中定义的异步处理来实现 COMET 聊天。它不起作用 - 聊天被阻止,所以我创建了调试 servlet 来仅测试异步部分。
这是我的 doGet 方法:
我将请求项目放入队列中,并且有一个线程正在运行,它将在指定超时后获取项目并将响应发送到 AsyncContext,打印有关它的消息。问题是,线程被阻塞,直到 AsyncContext 得到响应。这是在浏览器中请求 4 个页面加载后在我的日志中可见的内容:
正如所见,下一个 doGet 方法仅在前一个请求(理论上是异步的)应答后才被调用。所以整个异步事情根本不起作用!这是 web.xml 声明:
我正在尽一切可能在互联网上找到。我看不出犯错的地方。我发现在 servlet.xml 中配置没有什么特别之处。所以问题是,为什么它不能正常工作?
hibernate - 使用 Spring 3 和 Servlet 3 配置 OpenSessionInViewFilter
我想配置OpenSessionInViewFilter
为能够在视图中使用休眠延迟初始化,所以我在 web.xml 中添加了过滤器定义,但它不起作用我仍然得到相同的延迟初始化异常,这就是我所做的:
应用上下文:
请告知为什么我仍然收到延迟初始化异常,在此先感谢。
initialization - 从过滤器访问 servlet 初始化参数
我有一个这样的servlet:
在这个 servlet 上,我放置了一个过滤器:
问题是,即使我在 MyServlet 中设置了 @WebInitParameter ,程序也会打印出一个空字符串(请参阅注释行//problem come here in MyFilter)。我验证并看到servlet 的init()方法在doFilter()之前执行。那么任何人都可以在这个问题上照亮我吗?为什么initParameter “name” 为空,如果它设置为一个值?
谢谢!
java - 如何将此java代码转换为servlet
我是 servlet 的新手。我正在尝试使用带有 JDBC 和 OJDBC 的 java 连接到数据库。我已经为此编写了一个 java 代码。现在我需要在 Tomcat 服务器上运行它。所以我选择了 servlet。我使用 Netbeans IDE 完成了这项工作,在那里我选择了 servlet,并在 web.xml 中将类名作为 servlet 名称。我不知道我在哪里做错了。所以,我发布了有效的 java 代码:
我想知道如何将此代码转换为 Servlet?
tomcat - 异步处理servletrequest以快速响应客户端并在tomcat后台处理庞大的任务
我有一个 servlet,它在客户端请求时将多封邮件发送到不同的地址。
由于发送邮件需要很长时间,因此客户端必须等待才能收到响应。我想异步处理邮件的发送,以更快地将响应发送回客户端。
此外,邮件的发送可以延迟到几分钟,并且不必是实时的。我不想在数据库中保存任何信息,只想在应用程序中处理。我想到的解决方案如下:
当客户端请求此 servlet 时,servlet 会将邮件列表和内容作为属性添加到 ServletContext 中并将响应发送回客户端 启动时加载一个帮助 servlet 并生成一个 timertask 线程,该线程在每次(例如) 10 分钟,读取 servletcontext 属性,发送邮件并删除属性。
请建议这是否是一个好的解决方案。如果有的话,也提出一个更好的。
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