2013-04-10 96 views
1

我试图触发一个导致WELD 001303问题的get请求。 @Path( “/测试”) @RequestScoped 公共类TestRest {EJB与JBoss 7.1.1导致WELD 001303错误

@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(); 
    } 

} 

使用:从http://sourceforge.net/projects/mobicents/files/Mobicents%20Sip%20Servlets/Mobicents%20Sip%20Servlets%201.7.0.FINAL/

mss-1.7.0FINAL-jboss-as-7.1.1.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 :21 4) 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.j AVA: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 $ _ $$ WeldClientProxy.get(TestRest $ Proxy $ $$ _ WeldClientProxy.java) sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 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) 有机jboss.resteasy.core.ResourceMethod.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.Syn chronousDispatcher.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)`

回答

1

有两种解决方案。您要等到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