问题标签 [grizzly]
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 - Telnet 到 EchoServer Grizzly 示例应用程序
我一直在研究一个服务器应用程序,随着时间的推移,它会收到相当多的连接。为了能够处理这个问题,我一直在使用标准的 java NIO 类实现非阻塞设计。但是有很多细节需要处理,我更喜欢使用某种框架。最好我想使用 Spring Integration,但我找不到一些简单的工作示例。
相反,我现在正在评估 Grizzly 框架,它似乎提供了我需要的功能。我实现了他们的EchoServer 示例,但发现我无法 Telnet 到服务器并且结果在控制台上回显给我。他们的 EchoClient 应用程序按预期工作。
就我而言,我无法对尝试连接到我的客户端做出任何假设,因此我必须能够支持从简单的 telnet 客户端到 NIO 客户端的所有内容。灰熊能做到这一点吗?如果可以,怎么做?
https - 在 SecurityFilter 中调用 getUserPrincipal 导致 IllegalStateException:Handshake is not completed
我只是尝试使用 Jersey 1.16 并在我的应用程序中添加 https 支持。使用Jersey https_grizzly 示例作为参考,我在 SecurityFilter.authority() 中添加了一行代码
然后我尝试使用 https 启动服务器并将 setNeedClientAuth 设置为 false 以避免通过更改 startServer() 中的 Server.java 来使用客户端证书:
setNeedClientAuth(false) 中的布尔参数最初为 true,以便请求客户端证书。我认为通过这种方式,我的应用程序可以适应有证书和没有证书的客户。如果没有证书,getUserPrincipal() 可能会返回 null,以便我知道这是一个匿名用户。不幸的是,在这种情况下,系统引发如下异常并且客户端没有收到任何信息:
为什么在这种情况下我不能使用 getUserPrincipal() ?有人知道吗?谢谢你。
glassfish - 灰熊如何适应 Glassfish?
我知道 Glassfish 使用了一个名为 Grizzly 的组件,但我不确定 Grizzly 究竟扮演什么角色。我读过它是 Glassfish 的“前端”。它是否正确?Grizzly 究竟做了什么,比如当一个 HTTP 请求进来或一个响应被发回时,它是先通过 Grizzly 吗?如果是这样,出于什么原因?
tomcat - 构建可扩展的 xml 桥接处理平台
我正在构建接收来自 Internet 的请求、连接到本地可用的搜索平台并获取一些 XML 的中间件。
然后,它更改此 XML、修剪它并更改为其他格式(可能是 JSON)并将其发送回调用应用程序。
我正在考虑使用以下技术堆栈来实现这一点。
Tomcat + 普通的旧 servlet
我想尽可能提高每箱的吞吐量(四核、双 CPU、32GB 内存),我怀疑 tomcat 可能不是最好的选择,我可能会更好地使用 Jetty 或灰熊还是其他我不知道的?有没有人有一些比较数据或轶事证据表明他们将从哪种技术开始?
如果没有,我想我应该先用我自己的测试数据集对它们进行基准测试。叹
java - 将 Grizzly2.2.X 与 Jersey 和 Spring 集成
我已成功Grizzly v2.1.9
与Jersey
和集成Spring
。Grizzly
但是在尝试迁移到 version时无法使其工作2.2.19
。
原始代码Grizzly v2.1.9
如下。
新代码Grizzly v2.2.19
如下
新代码可以毫无例外地编译和执行。但是,所有应该转发到不同方法的 urlJersey
现在都转发到默认页面“/”。
更新
对于遇到同样问题的人。
在 Grizzly2.2.20 之后修复
java - 到泽西岛的 HTTP-POST 上的双 HTTP-Status 标头
我写了一个简单的 Grizzly/Jersey 应用程序,你可以在这里找到:
https://github.com/boldt/stackoverflow-14526627
我想发布一些表单数据:
我收到以下回复:
如您所见,标题是双倍的,首先是 a ,100 Continue
然后是 a 200 OK
。获取 . 是没有意义的100 Continue
。
有什么建议么?
grizzly - grizzly http 服务器应该继续运行
下面是启动 Grizzly Http Server 的代码。如果我按任何键,服务器就会停止。有什么办法让它活着。
Jetty 有 join() 方法,不会退出主程序。灰熊中是否也有类似的东西。
根据上面的代码,如果您按下任何键,服务器就会停止。我想让它继续运行。当我真正想停止服务器时,我会终止该进程。main 方法不应终止。
谢谢
activemq - 将 Grizzly 与 JMS/ActiveMQ 一起使用
我正在从事概念验证项目,旨在探索将工作从 NIO 服务器卸载到消息队列以进行后端处理的好处。我将 Grizzly 用于 NIO 样板文件,将 Spring Integration 用于消息传递(使用 JMS/ActiveMQ 作为消息传递实现)。基本上,我想做的是:
客户端连接 -> 服务器 -> 服务器创建“待完成的工作”消息 -> JMS/ActiveMQ
在 ActiveMQ 消息队列上,许多“工作人员”将积极地使用这些消息,处理它们,并将结果放在另一个队列中。服务器正在侦听该队列上的“响应消息”,一旦接收到消息,它将执行以下操作:
响应队列->服务器将消息序列化为客户端可以理解的内容->返回给客户端
我的直接问题是我对 Grizzly 缺乏了解,特别是如何将事件处理与消息传递分离。服务器必须以这样的方式创建待完成的消息,当回复消息从工作人员返回时,服务器知道客户端是谁(在 Grizzly 中找到相关的 FilterChainContext)以便发送 tcp信息。
我也许可以使用 FilterChainContext.getAddress() 并将其放在工作消息上,但我不确定如何编写一个方法,该方法采用对等地址和消息并以某种方式发送 (FilterChainContext.write()) 时它没有 FilterChainContext。
我现在正在考虑保留 Map 的想法,但我对这种方法感到担忧,因为如果在序列化或处理期间消息发生问题,我不希望地图中的内容过时。
欢迎提出想法和建议。
-迈克尔
java - Jersey / Grizzly 的基本 HTTP 身份验证
我使用 JAX-RS、Jersey 和 Grizzly 编写了一个简单的 REST 服务器。这就是我启动服务器的方式:
现在我需要使用基本 HTTP 身份验证来保护资源,但我不知道该怎么做。
如果让其工作更简单,我可以从 Grizzly 切换到例如 Jetty,但我真的很重视 Grizzly 提供的简单配置/启动。
我已经阅读了很多教程。他们都提到了 web.xml,但在我目前的配置中我没有。(我需要为 HTTP 身份验证添加一个吗?)我发现了以下 问题,它们都没有任何帮助:-(
(此时不需要 SSL。此时的身份验证只是为了防止公众偷看我们的测试版。)
TL;DR:如何向 Jersey / Grizzly webapp 添加基本的 HTTP 身份验证?
java - 如何使用 Grizzly 2.2.X 设置会话超时?
我正在使用嵌入式Grizzly 2.2.X
Web 服务器。我想知道在哪里可以设置默认会话超时的会话配置。使用普通的 Web 容器很容易做到这一点。但是,我仍然无处可做Grizzly
。