问题标签 [servlet-container]
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 - Netty 有哪些 Servlet 容器
我想为自己构建一个基于 Web 的聊天应用程序(例如 hipchat 或 facebook 聊天),我认为 netty 是这种方式,因为它是事件驱动的,但是。Netty 没有任何 servlet 容器。那么如何为 netty 构建自己的 servlet 容器呢?或者更好的是如何构建自己的 ServletContainer?
session - 除了存储会话 ID 之外,我为什么要使用 cookie?
据我所知,对于 HTTP,有两种方法可以存储属于客户端的数据并将某种状态带入原本无状态的 Browser-webcontainer-connection:1)存储在客户端 cookie 中的数据 - 或 2)会话ID 存储在 cookie 中,相关数据存储在服务器端的 web 容器中。当我比较这两种可能性时,我想不出一个理由,为什么要走第一种。但是,当我查看浏览器的 cookie 时,我看到其中存储了很多数据。
- 网络容器(如 tomcat)可以将任意数据与会话 ID 一起存储 - cookie 的大小非常有限。
- Cookie 更容易受到攻击,因为它们存储在客户端。将数据保存在服务器端对我来说更安全。
- cookie 和 webcontainer-sessions 都可以定义过期日期。
- 浏览器和 web 容器都在重启时保留它们的数据。
任何人都可以提出使用 cookie 存储会话数据有好处甚至是必要的场景吗?
servlets - 一旦当前的 servlet 会话过期,我想创建一个新会话。
我必须避免以下情况。我正在运行 servlet 。此会话将在我的超时 (WEB.XML) 期后在浏览器中过期。超时后,我需要在浏览器中重新加载此链接以激活此 servlet。我不想再次重新加载链接,它应该在超时后创建一个新会话。
java - Servlet context 和 ServletConfig 是接口,web 容器如何实现这些?
据我所知servletContext
&servletConfig
是两个接口,用于使用 web.xml 部署描述符将初始化参数传递给 servlet
1.servletContext
2.servletConfig
这里我的问题是 web 容器如何在内部实现这些接口?
java - 非 Java EE 5 servlet 和 Java EE 5 servlet 容器之间有什么区别?
我一直在浏览 JAX-WS RI 文档并遇到了非 Java EE 5 servlet 和 Java EE 5 servlet 容器这两个术语。
The documentation/samples discusses how to use JAX-WS in a non-Java EE 5 servlet container using a proprietary deployment descriptor sun-jaxws.xml and servlet com.sun.xml.ws.transport.http.servlet.WSServlet. This means that you can run JAX-WS RI applications in any servlet container that has been enabled with the JAX-WS RI. Applications that use the proprietary DD and servlet will run in a JAX-WS RI enabled Java EE 5 servlet container, but they will be non-portable. If you wish to use JAX-WS in a Java EE container in a Java EE portable manner you need to use the standard Java EE 5 deployment descriptor; please refer to the Java EE 5 or Glassfish documentation/samples
那么非 Java EE 5 servlet 和 Java EE 5 servlet 容器到底是什么?是因为java和servlet规范版本不同吗?
java - 通过 Runtime.exec 从 Web Archive 中的 java 代码运行命令(WAR 部署在 Jetty 中)
我的 PC 在 Windows7 64 位下运行,我有一个实用程序(.exe,非常旧的 [~WinXP 时代],没有可用的资源),我想从部署到 Jetty 中的 java 代码中调用它。如果我从控制台启动实用程序,我不会收到任何错误。如果我通过简单的 java 包装器启动实用程序:
我也没有错误。但是,如果我从 WAR 内部调用此代码(比Runtime.getRuntime().exec("util.exe")复杂一点,因为我需要计算二进制文件的绝对路径),我会收到带有以下消息的 IOException:
CreateProcess 错误=216,此版本的 %1 与您正在运行的 Windows 版本不兼容。检查您计算机的系统信息,看看您是否需要 x86(32 位)或 x64(64 位)版本的程序,然后联系软件发行商
我尝试使用 -d32 选项启动码头,尝试将不同版本的 java(JRE/JDK,均为 6/7,均为 32/64 位)放入 JAVA_HOME 和 PATH,但没有成功。
有没有人遇到过类似的问题?有可能解决它们吗?
[更新] 我附上了一些服务器代码。 CommandLine 和 FileUtils是 Apache Commons 的一部分。ApplicationContext与Spring Framework相关。
intellij-idea - 在码头部署idea web模块
我删除了项目的 artifacts 文件夹的内容,现在服务器抛出配置错误:
部署源“Hello World IDEA JETTY:war exploded2”无效
如何将 Web 服务器模块重新部署到服务器上?
authentication - 没有可用于编程登录的身份验证器
每当我尝试在两个不同的会话中使用两个不同的用户登录时,我都会不断收到此错误。
13:27:28,444 错误 [com.commit.steam.rest.RestLoginService] (http-localhost-127.0.0.1-8080-2) 登录错误:javax.servlet.ServletException:在 org.apache 上没有可用于编程登录的身份验证器.catalina.connector.Request.login(Request.java:3254) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.connector.RequestFacade.login(RequestFacade.java:1082) [jbossweb-7.0 .13.Final.jar:] 在 com.commit.steam.rest.RestLoginService.login(RestLoginService.java:128) [steam-rest-api-0.1.6-SNAPSHOT.jar:]
来自standalone.xml:
jboss-web.xml:
我使用 JBoss-as 7.1.1.Final
在调试时,我可以看到第一个请求(HttpServletRequest.context.authenticator)具有 NonLoginAuthenticator,而第二个会话的登录没有附加任何身份验证器(即 HttpServletRequest.context.authenticator 为空)。第一个会话中的每个后续请求在请求上都有相同的身份验证器(当我为一个用户测试业务流程时)。
HttpServletRequest 在类级别注入
(我试图将注入移至方法级别,但没有帮助)。我的休息类被注释为@Stateless bean(允许注入)。
我尝试切换会话(我使用 Chrome 和 FireFox 来确保不同的会话),但它没有改变任何东西。
有没有人知道我需要在哪里寻找这个问题?
非常感谢阿维
java - 在 WebObjects 应用程序中实现 HTTPServlet 接口
我们需要在 webobjects 应用程序中实现 HttpServlet 接口。我们都知道“WebObjects 应用程序可以部署为 servlet 容器内的 servlet”。但是,我们的要求是在 webobjects 服务器中部署 servlet 应用程序。
请在以下方面向我澄清。
- 我们的 webobjects 服务器中有 servlet 容器吗?
- 我们可以在 webobjects 应用程序中实现 HttpServlet 接口吗?
java - Jersey servlet 返回的 zip 文件包含的字节数多于发送的响应
我正在尝试实现一个简单的 servlet,它返回一个捆绑在应用程序内部的 zip 文件(简单资源)
所以我在服务器端实现了以下方法:
当我从浏览器调用此方法时,会下载 zip 文件,其大小与服务器中原始 zip 的字节数相同。
但是,当我使用客户端代码中的简单 XMLHttpRequest 调用它时:
我可以在 chrome 中的开发工具的网络选项卡中看到内容大小更大,并且我无法处理此 zip 文件(例如 JSzip 无法识别它)。
似乎在我的响应和来自的最终响应之间的某个地方,org.glassfish.jersey.servlet.ServletContainer
写入了一些额外的字节/对文件进行了一些编码。
你能帮忙吗?
最好的问候, 马克西姆