问题标签 [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.

0 投票
2 回答
825 浏览

java - 与jetty + guice的可运行战争

这是一个关于更好地将嵌入码头的代码与连接 servlet的代码分开的问题。

我正在尝试修改此示例代码,以便获得可运行的战争,即我可以放入现有 Jetty 容器的战争文件,或使用类似java -jar webapp-runnable.war. 示例代码属于这两篇博文:No.1No.2

我遵循了GuiceServlet 手册并创建了一个web.xmland 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样子才能起作用?

0 投票
1 回答
323 浏览

jersey - 从 Guice ServletModule 安装自定义 Jersey ViewProcessor

我正在使用jersey-guice使用一堆 Guice (Servlet) 模块来设置我的所有 Jersey 1 资源。

我编写了一个依赖于配置对象的自定义ViewProcessor( CustomViewProcessor),我想使用 Guice 将其注入。每次需要时,泽西岛都CustomViewProcessor 应该拿起并使用它。

我如何告诉 Jersey 在CustomViewProcessor需要时获取 Guice 创建的实例ViewProcessorModule我想在我的 Guice的configure方法中设置所有这些。

0 投票
1 回答
339 浏览

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 错误。

0 投票
2 回答
73 浏览

wso2 - WSO2 AS guice 集成

我正在使用 WSO2 应用程序服务器来部署我的 Web 服务。我想在我的项目中使用 guice。我已经阅读了关于axis2 guice 集成的maksim博客。他使用 web.xml 进行注入,但是我不知道如何将 wso2 中的 web.xml 更改为。

谢谢

0 投票
1 回答
567 浏览

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 仍然没有被过滤。

0 投票
2 回答
402 浏览

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 的样子:

上下文监听器:

和模块:

0 投票
0 回答
346 浏览

java - 如何使用 Guice 在 Web 应用程序中启动/停止服务

我正在构建一个 Web 应用程序,并且正在使用 Guice Servlet 扩展来引导所有内容。

按照我找到的用户指南和示例,我web.xml有一个扩展的监听器GuiceServletContextListener。在我的听众中,我创建了我的注射器,如此所述。

我的应用程序有一些组件需要分别在初始化和销毁​​ servlet 上下文时进行初始化和销毁​​。一些示例是缓存管理器、从 3rd 方 API 获取数据的客户端、访问 Cassandra 存储的客户端等。

我正在尝试找到合适的位置来初始化/销毁这些组件。如果没有 Guice,我可能会直接在我的上下文侦听器中执行此操作,但似乎 Guice 并没有促进这一点。

我所看到的是对每个服务使用 servlet 过滤器。通过在每个过滤器中实现 init/destroy,我可以启动和停止每个服务。但是,如果我没有实际的过滤要做,这似乎只是为了挂钩到 servlet 生命周期:

还有其他选择吗?

0 投票
0 回答
618 浏览

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 模块/提供者找到正确的位置来获得令人满意的实例。

0 投票
1 回答
1112 浏览

java - Guice-servlet 单元测试

背景:我正在使用框架开发guiceservlet guice-servlet。我想通过以下方式测试我的 servlet:

  1. Servlet单元测试:通过提供 get/post 请求将 servlet 与其他依赖项隔离并模拟客户端
  2. Servlet集成测试:模拟客户端,但没有 servlet 隔离。另外,作为集成测试的一部分,我想测试我与 Guice 本身的集成。

问:我正在寻找可以让我执行上述两种测试的 servlet 测试框架。

同时我看了看HttpUnit,但我没有找到连接Guice它的方法:servlet可以注册在ServletRunner,但它们是由类名提供的。这意味着 ServletRunner 将实例化它们(不注入依赖项)。

我还找到了tadedon项目的GuiceServletMockModule。似乎正是我正在寻找的东西。但我不确定它是否仍然保持不变。例如,我无法从他们的 Maven 存储库中获取他们的 Maven 包。

谢谢

0 投票
1 回答
559 浏览

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 月)有一些提交......该项目是否仍在积极维护?