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

时间:2014-09-02 16:15:08

标签: 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地狱时代) 目前我正在部署以下罐子:

  • PicoContainer的-2.10.2.jar
  • PicoContainer的卷材芯-2.4.jar
  • 的XStream-1.3.1.jar

有什么问题?它是一个丢失的罐子还是其他东西?如果有一个丢失的Jar并且因为我没有其他消息,我怎么能理解Jar丢失了什么?部署整个picocontainer jar并不是首选,因为它是一大堆文件。

修改

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

2 个答案:

答案 0 :(得分:1)

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

请注意,它需要WebappComposer类型的类名作为web.xml中的context-param:

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

如果要将servlet上下文注入到应用范围的组件,http会话到会话范围的组件,http请求请求作用域,则需要过滤impl。

答案 1 :(得分:0)

我自己得到了答案。 问题当然是org.picocontainer.web.PicoServletContainerFilter是抽象的。该类中有一个名为servlet filter的实现。在这里工作的cofig: enter image description here