问题标签 [guice-servlet]
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 - 与jetty + guice的可运行战争
这是一个关于更好地将嵌入码头的代码与连接 servlet的代码分开的问题。
我正在尝试修改此示例代码,以便获得可运行的战争,即我可以放入现有 Jetty 容器的战争文件,或使用类似java -jar webapp-runnable.war
. 示例代码属于这两篇博文:No.1、No.2。
我遵循了GuiceServlet 手册并创建了一个web.xml
and GuiceServletContextListener
(见下文),但它们似乎并没有让我很了解mvn jetty:run
; 当我尝试跑步时mvn jetty:run
,我收到以下错误:
这是我的代码。如前所述,我从github 上的这个 repo开始。
1)我从中提取了 AbstractModule 类型的匿名内部类com.teamlazerbeez.http.HttpServerMain
并将其放入一个新类com.teamlazerbeez.http.HttpServerModule
中。这个类现在在创建 Guice Injector 时被实例化在HttpServerMain
(l36)中创建 Guice Injector 时实例化此类中创建 Guice Injector 时实例化此类。
2)我的web.xml
:
3)我的com.teamlazerbeez.http.GuiceServletConfig
:
我的问题:我如何重构该HttpServerMain
main
方法,并HttpServerModule
以使他们描述的设置过程对我有用的方式GuiceServletConfig
?它必须是什么GuiceServletConfig
样子才能起作用?
jersey - 从 Guice ServletModule 安装自定义 Jersey ViewProcessor
我正在使用jersey-guice使用一堆 Guice (Servlet) 模块来设置我的所有 Jersey 1 资源。
我编写了一个依赖于配置对象的自定义ViewProcessor
( CustomViewProcessor
),我想使用 Guice 将其注入。每次需要时,泽西岛都CustomViewProcessor
应该拿起并使用它。
我如何告诉 Jersey 在CustomViewProcessor
需要时获取 Guice 创建的实例ViewProcessor
?Module
我想在我的 Guice的configure
方法中设置所有这些。
java - Guice 和 URLRewrite 过滤器集成
我正在逐步将我们的应用程序 servlet 从 web.xml 迁移到 Guice servlet 模块,并遇到了 UrlRewrite 过滤器的问题 (tukey.org/urlrewrite/)。它不处理在 Guice 模块中注册的 servlet。如果我在 web.xml 中注册了 servlet 和过滤器,一切正常,但如果我尝试在 Guice 模块中注册它们 - 不会。有人遇到过类似的问题吗?
以下是代码的一些摘录:
1)Guice配置模块。
2) urlrewrite.xml 内容
当我尝试打开 url myhost/affiliate-activation 时,我收到 404 HTTP 错误。
wso2 - WSO2 AS guice 集成
我正在使用 WSO2 应用程序服务器来部署我的 Web 服务。我想在我的项目中使用 guice。我已经阅读了关于axis2 guice 集成的maksim博客。他使用 web.xml 进行注入,但是我不知道如何将 wso2 中的 web.xml 更改为。
谢谢
aop - 带有 GUICE 的 Shiro AOP 无法正常工作
我正在编写一项服务,其中我使用 Shiro 来确保安全。我也将 Guice 与它结合在一起。我在以下位置创建了 GUICE 注入器GuiceServletContextListener
:
我还将 Guice Container 和 GuiceShiroFilter 绑定在JerseyServletModule
:
但是 Shiro 的注释似乎不起作用!
我在以下位置配置链MyShiroWebModule
:
因此,如果我使用“ROLES”过滤器,那么它会以 AOP 方式扫描角色:
@RolesAllowed("SomeFancyRole")
(见编辑)
但我想利用 GUICE Shiro AOP 功能。我已经尝试了基本的 ShiroAOPModule 而不是我自己的 -> my is 用于调试以查看是否调用了配置。
@User, @Authenticated etc.
我如何合并此功能,因为文档指出只有“添加” ShiroAOPModule 才能开箱即用?先感谢您
编辑:
事实证明,@RolesAllowed
由于添加:
params.put(PackagesResourceConfig.PROPERTY_RESOURCE_FILTER_FACTORIES, "com.sun.jersey.api.container.filter.RolesAllowedResourceFilterFactory");
在 JerseyServlet 模块中
serve("/v1/*").with(GuiceContainer.class, params);
所以 Shiro 的 AOP 仍然没有被过滤。
google-app-engine - Guice 将 AppEngine 开发服务器模块分解为实例路由
我在应用程序中有两个模块。第一个模块正在通过推送队列为第二个模块生成任务。两个模块都使用手动缩放。
由于此错误https://code.google.com/p/googleappengine/issues/detail?id=10954 ,我使用“主机”标头将任务路由到第二个应用程序
如果我使用普通的旧 web.xml 进行 servlet 到 url 映射一切正常,所有对版本主机的请求都将成功路由到实例并执行。但是如果我切换到 GuiceFilter 相同的请求将在版本 url 上产生 404。它们在实例 url 上仍然可用,但不会从版本 url 自动路由。两种配置在生产中都可以正常工作,只有 devserver 受到影响。
我显然错过了一些东西,因为我找不到关于这个问题的任何东西。
我尝试了不同的 guice 和 guice-servlet 版本:3.0、3.0.1-SNAPSHOT、3.1.0-SNAPSHOT、4.0-beta4 - 没有结果
也尝试过这种方法https://stackoverflow.com/a/9706953/4070223 - 没有结果
这就是 web.xml 的样子:
上下文监听器:
和模块:
java - 如何使用 Guice 在 Web 应用程序中启动/停止服务
我正在构建一个 Web 应用程序,并且正在使用 Guice Servlet 扩展来引导所有内容。
按照我找到的用户指南和示例,我web.xml
有一个扩展的监听器GuiceServletContextListener
。在我的听众中,我创建了我的注射器,如此处所述。
我的应用程序有一些组件需要分别在初始化和销毁 servlet 上下文时进行初始化和销毁。一些示例是缓存管理器、从 3rd 方 API 获取数据的客户端、访问 Cassandra 存储的客户端等。
我正在尝试找到合适的位置来初始化/销毁这些组件。如果没有 Guice,我可能会直接在我的上下文侦听器中执行此操作,但似乎 Guice 并没有促进这一点。
我所看到的是对每个服务使用 servlet 过滤器。通过在每个过滤器中实现 init/destroy,我可以启动和停止每个服务。但是,如果我没有实际的过滤要做,这似乎只是为了挂钩到 servlet 生命周期:
还有其他选择吗?
java - Guice - 如何在不同的范围内以不同的方式提供相同的密钥?
古斯用户!我在这里遇到了一种情况,我可以找到解决方法,但我对我的解决方案不满意。它与Using the provider from two different scopes非常相似,但那里的答案不适合我的情况。
我有一个这样的课程,我在很多地方都注入了它:
直到过去的某个时刻,我刚刚@AuthenticatedUser User
从网络会话中得到了,所以我有:
问题:
在我需要MyBusinessClass
在不同的 Guice 范围内(以及在请求范围之外)使用相同的内容之前,这非常有效。我创建了一个 JobScope,与 Guice 文档中的范围示例非常相似,创建了一种 JobSession,将其绑定到 JobScope,并将使用@AuthenticatedUser User
时要注入的实例MyBusinessClass
放入 JobSession 中。
这就是我不为我所做的事情感到自豪的地方。我“改进”了我的提供程序以尝试@AuthenticatedUser User
为所有范围提供,我最终得到了这个丑陋的提供程序:
提供者采用试错法来查找可用的会话(Web 会话或作业会话),并返回用户获得的第一个会话。它之所以起作用,是@com.google.inject.Inject(optional=true)
因为范围是相互排斥的。
有没有更好的方法来实现这一目标?我只想为透明使用它的任何范围MyBusinessClass
注入@AuthenticatedUser User
,并让 Guice 模块/提供者找到正确的位置来获得令人满意的实例。
java - Guice-servlet 单元测试
背景:我正在使用框架开发guice
servlet guice-servlet
。我想通过以下方式测试我的 servlet:
- Servlet单元测试:通过提供 get/post 请求将 servlet 与其他依赖项隔离并模拟客户端
- Servlet集成测试:模拟客户端,但没有 servlet 隔离。另外,作为集成测试的一部分,我想测试我与 Guice 本身的集成。
问:我正在寻找可以让我执行上述两种测试的 servlet 测试框架。
同时我看了看HttpUnit
,但我没有找到连接Guice
它的方法:servlet可以注册在ServletRunner
,但它们是由类名提供的。这意味着 ServletRunner 将实例化它们(不注入依赖项)。
我还找到了tadedon
项目的GuiceServletMockModule。似乎正是我正在寻找的东西。但我不确定它是否仍然保持不变。例如,我无法从他们的 Maven 存储库中获取他们的 Maven 包。
谢谢
google-app-engine - Guice 4.0-beta5 不适用于 Sitebricks 0.8.10
我刚刚尝试使用最新版本的 Guice 和 Sitebricks (4.0-beta5) 和 (0.8.10) 将 Sitebricks 网站上的示例 HelloWorld 应用程序部署到 GAE,但注入失败。这是 Google App Engine 日志显示的内容:
在我看来,com.google.inject.util.internal 包在 4.0-beta5 中完全缺失,这就是导致 ClassNotFoundException 的原因。使用 3.0 而不是 4.0-beta5 解决了这个问题。
是否有可能以某种方式使用两者的最新版本?考虑到两者都是“谷歌出生的项目”,我很惊讶它们不兼容。有没有比 Sitebricks 更好的替代品?
PS 附带说明,sitebricks.org 已关闭,尽管最近(2015 年 1 月)有一些提交......该项目是否仍在积极维护?