java - 如何使用 Servlet 的依赖项?

标签 java servlets dependency-injection web-project three-tier

我有一个业务逻辑层,我想在 servlet 中使用它,但我所做的任何事情都会引发错误

@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       IPersonService service;

    public Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    @Override
    public void init(){
        service=new PersonService();
    }
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        service.getAll();
    }

我已经尝试了一切......ps。 PersonService 来自外部项目,我有引用。我在他自己的项目中测试它并且它有效,但是当我想在 servlet 中使用它时,它给了我一个奇怪的错误

Caused by: java.lang.NoClassDefFoundError: LBusinessInterfaces/IPersonService;
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Unknown Source)
    at java.lang.Class.getDeclaredFields(Unknown Source)
    at org.apache.catalina.util.Introspection.getDeclaredFields

请有人帮忙

最佳答案

您需要拥有包含业务接口(interface) (PersonService) 的外部依赖项 jar。到 servlet 容器中。应该是容器的“lib”文件夹,或者应该在项目的“WEB-INF/lib”文件夹中找到。

关于java - 如何使用 Servlet 的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39456575/

相关文章:

java - 了解 servlet-api 中的请求对象。是单例吗?

java - 在数组列表中将我选择的名称设置为非 Activity boolean 值,然后将它们存储在另一个数组中?

java - Java getter/setter 字段方法的缩写形式

mysql - 如何使用 Servlet 和 AJAX 下载 MySQL 的 BLOB?

html - Servlet 在连接 mysql 时没有任何响应

java - Play Framework 2.6 : NoClassDefFoundError: play/cache/DefaultCacheApi

java - 无法在 jsp 中使用 ${data} 显示数据,而 request.getAttribute ("data")确实返回值

javascript - 我们如何使用 $inject 将依赖项注入(inject)到 Angular 工厂中?

c# - ASP C# 接口(interface)

c# - DI : Associating entities with repository