2014-09-16 16 views
7

Tôi đã có rất nhiều dự án jee7 maven (tai với mô-đun web và ejb) với các dịch vụ RestFul chạy tốt trên Glassfish v 4.0 nhưng ngay sau tôi cố gắng để chạy các dự án trên Glassfish v 4.1 các dịch vụ RESTful không làm việc nữa và họ ném ngoại lệ này:.Glassfish 4.1 không thể chạy dịch vụ RestFul khi sử dụng tai/ejb/web module

javax.servlet.ServletException: A MultiException has 1 exceptions. They are: 
1. org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=TestBean,parent=GenericResource,qualifiers={},position=-1,optional=false,self=false,unqualified=null,82785107) 

tôi đã hai lần kiểm tra các vấn đề và dứt khoát Glassfish 4,1 lẽ có một thư viện bị hỏng (có thể cdi thực hiện?), Glassfish v. 4.0 và Wildfly 8.1.0.Final đang hoạt động tốt ...

Tôi không thể hiểu làm thế nào tôi có thể chạy các dịch vụ web RestFul của mình trên Glassfish v. 4.1 ...

Có ai có thể giúp tôi không?

Nhiều cảm ơn trước ...

Đây stack trace:

Avvertenza: An instance of EJB class, test.rest.GenericResource, could not be looked up using simple form name. Attempting to look up using the fully-qualified form name. 
javax.naming.NamingException: Lookup failed for 'java:app/TestEjb/GenericResource' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: No object bound to name java:app/TestEjb/GenericResource] 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:491) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:438) 
    at javax.naming.InitialContext.lookup(InitialContext.java:417) 
    at javax.naming.InitialContext.lookup(InitialContext.java:417) 
    at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider.lookupSimpleForm(EjbComponentProvider.java:378) 
    at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider.lookup(EjbComponentProvider.java:360) 
    at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider.access$000(EjbComponentProvider.java:100) 
    at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider$EjbFactory.provide(EjbComponentProvider.java:123) 
    at org.jvnet.hk2.internal.FactoryCreator.create(FactoryCreator.java:124) 
    at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:461) 
    at org.jvnet.hk2.internal.PerLookupContext.findOrCreate(PerLookupContext.java:69) 
    at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2258) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:690) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:655) 
    at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:172) 
    at org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:185) 
    at org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:74) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:94) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:63) 
    at org.glassfish.jersey.process.internal.Stages.process(Stages.java:197) 
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:263) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267) 
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297) 
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254) 
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028) 
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) 
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: javax.naming.NameNotFoundException: No object bound to name java:app/TestEjb/GenericResource 
    at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:741) 
    at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:715) 
    at com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:167) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:471) 
    ... 64 more 

Grave: javax.naming.NamingException: Lookup failed for 'java:app/TestEjb/GenericResource!test.rest.GenericResource' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: No object bound to name java:app/TestEjb/GenericResource!test.rest.GenericResource] 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:491) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:438) 
    at javax.naming.InitialContext.lookup(InitialContext.java:417) 
    at javax.naming.InitialContext.lookup(InitialContext.java:417) 
    at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider.lookupFullyQualifiedForm(EjbComponentProvider.java:400) 
    at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider.lookup(EjbComponentProvider.java:364) 
    at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider.access$000(EjbComponentProvider.java:100) 
    at org.glassfish.jersey.gf.ejb.internal.EjbComponentProvider$EjbFactory.provide(EjbComponentProvider.java:123) 
    at org.jvnet.hk2.internal.FactoryCreator.create(FactoryCreator.java:124) 
    at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:461) 
    at org.jvnet.hk2.internal.PerLookupContext.findOrCreate(PerLookupContext.java:69) 
    at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2258) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:690) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:655) 
    at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:172) 
    at org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:185) 
    at org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:74) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:94) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:63) 
    at org.glassfish.jersey.process.internal.Stages.process(Stages.java:197) 
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:263) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267) 
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297) 
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254) 
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028) 
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) 
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: javax.naming.NameNotFoundException: No object bound to name java:app/TestEjb/GenericResource!test.rest.GenericResource 
    at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:741) 
    at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:715) 
    at com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:167) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:471) 
    ... 64 more 

Avvertenza: StandardWrapperValve[test.rest.ApplicationConfig]: Servlet.service() for servlet test.rest.ApplicationConfig threw exception 
org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=TestBean,parent=GenericResource,qualifiers={},position=-1,optional=false,self=false,unqualified=null,734647163) 
    at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:74) 
    at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:947) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:902) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:977) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:968) 
    at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:173) 
    at org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:185) 
    at org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:74) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:94) 
    at org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:63) 
    at org.glassfish.jersey.process.internal.Stages.process(Stages.java:197) 
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:263) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267) 
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297) 
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254) 
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028) 
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) 
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) 
    at java.lang.Thread.run(Thread.java:745) 

Tôi đã một tai bằng một đầu gắm ejb và một module web (module web thêm mô-đun ejb như thư viện) .

Module ejb có lớp này:

package test.session; 
import javax.ejb.Stateless; 
import javax.inject.Named; 
@Stateless 
@Named 
public class TestBean { 
    public String getValue() { 
    return "value"; 
    } 
} 

Module web có các lớp này:

package test.rest; 
import java.util.Set; 
import javax.ws.rs.core.Application; 
@javax.ws.rs.ApplicationPath("webresources") 
public class ApplicationConfig extends Application { 
    @Override 
    public Set<Class<?>> getClasses() { 
    Set<Class<?>> resources = new java.util.HashSet<>(); 
    addRestResourceClasses(resources); 
    return resources; 
    } 
    private void addRestResourceClasses(Set<Class<?>> resources) { 
    resources.add(test.rest.GenericResource.class); 
    } 
} 

và:

package test.rest; 
import javax.ejb.Stateless; 
import javax.inject.Inject; 
import javax.ws.rs.core.Context; 
import javax.ws.rs.core.UriInfo; 
import javax.ws.rs.Produces; 
import javax.ws.rs.Consumes; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PUT; 
import test.session.TestBean; 
@Path("generic") 
@Stateless 
public class GenericResource { 
    @Context 
    private UriInfo context; 
    @Inject 
    TestBean testBean; 
    public GenericResource() { 
    } 
    @GET 
    @Produces("application/json") 
    public String getXml() { 
    //TODO return proper representation object 
    return testBean.getValue(); 
} 
} 

Nếu tôi cố gắng để di chuyển:

http://localhost:8080/TestRest/webresources/generic 

Glassfish 4.1 tăng ngoại lệ và Glassfish 4.0 hoạt động tốt ...

Trả lời

9

Tôi đã có một vấn đề tương tự. Đó là một lỗi được đề cập bởi @ user993553, nó cố gắng khởi tạo EJB (GenericResource) của Mô-đun WAR từ bên trong Mô-đun EJB.

Giải pháp thay thế là chuyển đổi EJB của bạn từ Mô-đun WAR sang CDI. Chỉ cần thay đổi @javax.ejb.Stateless thành @javax.enterprise.context.RequestScoped hoặc bất kỳ phạm vi nào khác.

@Path("generic") 
@javax.enterprise.context.RequestScoped 
public class GenericResource 
{ 
    @Context 
    private UriInfo context; 

    @Inject 
    TestBean testBean; 

    public GenericResource() {} 

    @GET 
    @Produces("application/json") 
    public String getXml() { 
     // TODO return proper representation object 
     return testBean.getValue(); 
    } 
} 
+0

Có, cách giải quyết của bạn hoạt động như một sự quyến rũ !!! Cảm ơn nhiều !!! – giates

+0

Những thứ này làm tôi phát điên. Một ngày lãng phí cho lỗi này !!!! – angelcervera

+0

Và hãy nhớ rằng nó không phải là một EJB, do đó, không có tài sản công cộng nếu bạn không muốn lỗi "thất bại định nghĩa CDI: WELD-000075: lớp thực hiện quản lý đậu phạm vi bình thường có một lĩnh vực công cộng: ..." Ufff !! Và sau khi lỗi này, Nó là cần thiết khởi động lại dụ. Thật điên rồ! – angelcervera

0

Điều này có vẻ ngớ ngẩn, nhưng đổi tên các tập tin WAR để một cái gì đó kết thúc bằng .jar và tải nó lên như là một "ứng dụng web" làm việc cho tôi.

cũng https://java.net/jira/browse/JERSEY-2690

Xem Bạn có thể có lẽ cũng Refactor ứng dụng của bạn để có tất cả các Stateless lớp học trong một JAR.

Các vấn đề liên quan