我是Java开发的新手。我试图在servlet应用程序中使用PicoContainer。我在web.xml中配置了容器,当它试图创建过滤器时,它失败了。因此,我试图像这样手动实例化过滤器:
Class<?> clazz = Class.forName("org.picocontainer.web.PicoServletContainerFilter");
Object test = clazz.newInstance();我也得到了同样的例外:
java.lang.InstantiationException但我没有详细的信息。我想JAR在部署中缺少了一些东西(在本例中不应该是ClassNotFoundExeption吗?)
因为对我来说还不清楚需要什么依赖。(似乎是旧的dll地狱时代)目前我正在部署以下jars:
有什么问题吗?是失踪的罐子还是别的什么?如果有一个缺少的Jar,并且因为我没有附加的消息,我如何才能理解Jar丢失了什么?Deployng整个皮容器罐不是首选的选项,因为它是一个巨大的文件混乱。
编辑
问题似乎是抽象的!所以我不知道这种在docs中找到的配置是如何工作的:http://picocontainer.com/web/
发布于 2014-09-03 09:02:37
我自己就知道答案了。问题当然是org.picocontainer.web.PicoServletContainerFilter是抽象的。该类中有一个名为servlet过滤器的实现。在这里,工作图:

发布于 2014-09-03 08:52:14
我想这只是一些错误的示例代码。对于基本的IoC组合,根本不需要过滤器。org.picocontainer.web.PicoServletContainerListener完成了配置应用程序/会话/请求容器的所有工作。
请注意,它需要WebappComposer类型的类名作为web.xml中的上下文-param:
<context-param>
<param-name>webapp-composer-class</param-name>
<param-value>com.company.MyWebappComposer</param-value>
</context-param>如果要向应用程序作用域组件注入servlet上下文、向会话作用域组件注入http会话以及向请求作用域的http请求注入servlet上下文,则需要筛选器impl。
https://stackoverflow.com/questions/25627903
复制相似问题