java - 实例化 org.picocontainer.web.PicoServletContainerFilter 时出错

标签 java instantiationexception picocontainer

我对 Java 开发很陌生。我正在尝试在 servlet 应用程序中使用 PicoContainer 。我在 web.xml 中配置了容器,但在尝试创建过滤器时失败了。 所以我尝试像这样手动实例化过滤器:

Class<?> clazz = Class.forName("org.picocontainer.web.PicoServletContainerFilter");
Object test = clazz.newInstance();

我得到了同样的异常:

java.lang.InstantiationException

但我没有详细的消息。我猜部署中的 JAR 中缺少某些内容(在本例中不应该有 ClassNotFoundExeption?)

因为我不清楚所需的依赖关系。 (似乎是旧的dll hell 时代) 目前我正在部署以下 jar:

  • picocontainer-2.10.2.jar
  • picocontainer-web-core-2.4.jar
  • xstream-1.3.1.jar

有什么问题吗?是缺少 jar 还是其他东西?如果缺少一个 Jar 并且因为我没有其他消息,我如何才能了解缺少什么 Jar?部署整个 picocontainer jar 不是首选选项,因为它是一大堆文件。

编辑

问题似乎是该类是抽象的! 所以我不知道文档中的配置如何工作: http://picocontainer.com/web/

最佳答案

我猜这只是一些错误的示例代码。对于基本的 IoC 组合,您根本不需要过滤器。 org.picocontainer.web.PicoServletContainerListener 完成配置应用程序/ session /请求容器的所有工作。

请注意,它需要 WebappComposer 类型的类名作为 web.xml 中的上下文参数:

  <context-param>
   <param-name>webapp-composer-class</param-name>
   <param-value>com.company.MyWebappComposer</param-value>
  </context-param>

如果您想将servlet上下文注入(inject)到应用程序范围的组件中,将http session 注入(inject)到 session 范围的组件中,并将http请求注入(inject)到请求范围的组件中,则需要filter impl。

关于java - 实例化 org.picocontainer.web.PicoServletContainerFilter 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25627903/

相关文章:

java - 库存控制的并发控制

android - 使用服务下载时发生 InstantiationException

android - 如何防止媒体播放器在屏幕关闭时停止?

使用 XMLEncoder 时出现 java.lang.Instantiation 异常

java - Picocontainer 2.14.3 和 AOP

cucumber-java - 如何在Cucumber中配置PicoContainer?

java - 仅在业务逻辑中设置对象的属性?

java - 在 Spring Boot 的 application.properties 中使用系统变量

java - 如何显式调用父类的构造函数

java - 从 Waffle/Pico 转换为 Struts2/Guice