我无法让@EJB 依赖注入工作。我使用 Linux 和 Maven 作为构建工具。
对于源代码、IDE 和应用服务器,我喜欢使用尽可能简单的替代方案。我尝试使用 Glassfish 3.1.2.2、NetBeans 7.2 但没有运气。我没有在 Glassfish 中进行任何配置。
这是一些示例源代码,但任何有效的代码都会有所帮助。此外,任何有关如何调试此类问题的想法都将不胜感激。似乎每个初学者都拥有它们...
链接资源.java
package se.xyz.webapp;
import javax.ejb.EJB;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import se.xyz.server.LinkService;
@Path("links/{username}")
public class LinkResource {
@EJB
LinkService service;
@GET
@Produces("text/plain")
public String link(@PathParam("username") @DefaultValue("NoName") String name ) {
return service.store(name); // Always nullpointer exception here!
}
}
LinkServiceImpl.java
package se.xyz.server;
import javax.ejb.Stateless;
@Stateless
public class LinkServiceImpl implements LinkService {
public String store(String name)
{
return "From eJB";
}
}
链接服务.java
package se.xyz.server;
import javax.ejb.Local;
@Local
public interface LinkService {
public String store(String name);
}
webapp 正在显示,但变量 service 始终为空。让这段代码工作并不重要,但只要我能让任何 DI 工作就行。在遥远的未来,我也想坚持下去,但是我想手动完成,而不是从原型中获得一个巨大的工作应用程序。我的目标是了解我在做什么......任何帮助将不胜感激。