嗨,我有一个非常简单的例子。我的JavaEE 7中创建一个资源,如下所示:@inject不适用于无状态的EJB
@Path("greetings")
public class GreetingsResource {
@Inject
Sample s;
@GET
public JsonObject greetings(){
return Json.createObjectBuilder().add("first","1")
.add("second","2")
.add("third","3")
.add("fourth","4")
.add("helloworld", s.helloWorld())
.build();
}
}
样品是下面这个简单的EJB:
@Stateless
public class Sample {
public String helloWorld(){
return "Hello World";
}
}
最后的资源应用类:
@ApplicationPath("resources")
public class RestConfiguration extends Application {
}
我可以访问的网址: “localhost:8081/jasonandjaxrs/resources/greetings”
问题是@Inject给出了t他以下错误:
1. org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at Injectee(requiredType=sample,parent=GreetingsResource,qualifiers={}),position=-1,optional=false
但@EJB似乎工作。我想了解为什么@Inject不起作用?谢谢。
谢谢@unwichtich。我向资源添加了无状态,并且最初给了我一个错误“不支持JAX-RS EJB集成”。它在重新启动服务器后工作。我只是在尝试不同的事情。在java ee中有不同的注释是否有很好的教程?谢谢。 –
主要有关于所有注释的技术参考文档,但我认为这是一个很好的例子列表:http://tomee.apache.org/java-ee-6-annotation-examples.html – unwichtich