EJB с JBoss 7.1.1 приводит к ошибке WELD 001303

Я пытаюсь запустить запрос на получение, который приводит к проблеме WELD 001303. @Path("/test") @RequestScoped открытый класс TestRest {

    @EJB
    HelloWorldInterface helloWorld;

    @GET
    @Path("/get")
    public Response get() {
        return Response.status(201).entity(helloWorld.sayHello()).build();
    }

    @POST
    @Path("/post")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public Response post(String request) {
        String answer = helloWorld.sayHello() + request;
        return Response.status(201).entity(answer).build();
    }

}

Используя: mss-1.7.0FINAL-jboss-as-7.1.1.FINAL из http://sourceforge.net/projects/mobicents/files/Mobicents%20Sip%20Servlets/Mobicents%20Sip%20Servlets%201.7.0.FINAL/

Мне нужен этот пакет MSS для поддержки sip.

Мой проект как Sourecode и проект как .war

Рабочий процесс:

1. install mss package

2. start mss/jboss server with sip support (standalone-sip.xml) and deploy project

3. open http://127.0.0.1:8080/my-sipapp/rest/test/get

--> `org.jboss.resteasy.spi.UnhandledException: org.jboss.weld.context.ContextNotActiveException: WELD-001303 Нет активных контекстов для типа области видимости javax.enterprise.context.RequestScoped org.jboss.resteasy.core.SynchronousDispatcher. handleApplicationException(SynchronousDispatcher.java:340) org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:214) org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:190) org.jboss.resteasy. core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:540) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:502) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119) org. jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) org. jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) javax.servlet.http.HttpServlet.service(HttpServlet.java:847) org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter. java:62) первопричина

org.jboss.weld.context.ContextNotActiveException: WELD-001303 Нет активных контекстов для типа области javax.enterprise.context.RequestScoped org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:598) org.jboss.weld. bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71) org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79) com.mycompany.app.rest.TestRest$Proxy$_$$< em>WeldClientProxy.get(TestRest$Proxy$$$_WeldClientProxy.java) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:155) org.jboss.resteasy.core .ResourceMethod.invokeOnTarget(ResourceMethod.java:257) org.jboss.resteasy.core.ResourceMetho d.invoke(ResourceMethod.java:222) org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211) org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:525) org.jboss. resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:502) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119) org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher. java:208) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) javax. servlet.http.HttpServlet.service(HttpServlet.java:847) org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)`


person Grimbo    schedule 10.04.2013    source источник


Ответы (1)


Есть 2 решения. Ждёшь, пока прошится weld-core-1.1.8.FINAL.jar! Или вы получаете исходный код и выполняете жесткое исправление в org.jboss.weld.context.AbstractBoundContext:

public void deactivate() {
if (getBeanStore() != null )
{ getBeanStore().detach(); super.deactivate(); }
}

Для получения дополнительной информации см. https://issues.jboss.org/browse/WELD-1020?_sscc=t

person Grimbo    schedule 03.05.2013