2

我想将 JBoss 4.2.3 与 RESTEasy 2.3.2 一起使用。我可以通过将所有必需的罐子添加到库中来做到这一点。当我不使用 CDI 功能时,这很好用。

但是,如果我尝试在类中使用 @Inject,则 BeanManager 查找失败,因此部署失败。从https://issues.jboss.org/browse/RESTEASY-558,我了解到此问题已得到解决。

  • 我正在使用 JDK 1.6.X
  • 我的 WEB-INF 中有 beans.xml
  • 尝试使用 WELD servlet。但最终的错误保持不变
  • 添加<resource-env-ref>到 web.xml 中不起作用

web.xml 内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>xyz</display-name>

    <servlet>
    <servlet-name>Resteasy</servlet-name>
    <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServlet30Dispatcher</servlet-class>
</servlet>
    <servlet-mapping>
        <servlet-name>Resteasy</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>

    <context-param>
        <param-name>resteasy.resource.method-interceptors</param-name>
        <param-value>
         org.jboss.resteasy.core.ResourceMethodSecurityInterceptor
      </param-value>
    </context-param>

    <listener>
        <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
    </listener>

    <context-param>
        <param-name>resteasy.injector.factory</param-name>
        <param-value>org.jboss.resteasy.cdi.CdiInjectorFactory</param-value>
    </context-param>

</web-app>

堆栈跟踪:

Caused by: java.lang.RuntimeException: Unable to lookup BeanManager.
        at org.jboss.resteasy.cdi.CdiInjectorFactory.lookupBeanManager(CdiInjectorFactory.java:131)
        at org.jboss.resteasy.cdi.CdiInjectorFactory.<init>(CdiInjectorFactory.java:41)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:138)

问题:

  • JBoss 4.2.3 是否有可能拥有 CDI 功能?
  • 我看到 JNDI 查找失败。谁(哪个模块/类)负责添加 JNDI 条目?
  • 我的 web.xml 有什么问题吗?

在过去的一天里,我一直坚持这一点。任何帮助都非常感谢。

4

0 回答 0