2016-09-12 10 views
1

я есть слой BusinessLogic, и я хочу использовать его в сервлет, но что я делаю это бросает мне ошибкуКак использовать зависимость для сервлета?

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

Я попробовал все ..... пс. PersonService от внешнего проекта и у меня есть референс .Я проверить его в своем Projet и он работает, но когда я хочу использовать его в сервлет это дает мне странный EROR

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 

Кто-нибудь помогите пожалуйста

+0

У вас есть банка, содержащая класс IPersonService внутри WEB-INF/lib в развернутом webapp? Вот где это должно быть. –

ответ

1

Вам нужна внешняя баня зависимости, которая содержит ваш бизнес-интерфейс (PersonService). в контейнер сервлетов. Должна быть папка «lib» в контейнере, или она должна быть найдена в папке «WEB-INF/lib» ваших проектов.

+0

Как сделать банку из моих интерфейсов? – joesid

+1

Как и обычные файлы классов java. http://stackoverflow.com/questions/9941296/how-do-i-make-a-jar-from-a-java – kuhajeyan

+2

См. http://stackoverflow.com/questions/11243442/create-jar-file- from-command-line – dvsakgec