Пожалуйста, потерпите меня, я из .net и новичок в мире Java.
У меня есть веб-сайт Spring MVC 3, который использует Hibernate в качестве DAL. Я пытаюсь добавить пакет веб-службы в проект.
Вот проблема. Как только я добавляю библиотеки core и jaxb JAX-RS в свое решение (библиотеки, которые позволяют мне добавлять методы REST-JAX в мои классы сервисных проектов), hibernate перестает работать по всему проекту (включая мой веб-сайт). Любой вызов hibernate, который запрашивает базу данных (findbyblah ()), генерирует исключение NullPointerException. Когда я удаляю обе эти основные библиотеки, очищаю и перестраиваю, мой веб-сайт снова начинает работать.
Мне просто нужно иметь возможность реализовать несколько методов обслуживания с моего сайта. Может ли кто-нибудь указать мне правильное направление? Спасибо.
ОБНОВЛЕНИЕ: Вот трассировка стека:
java.lang.NullPointerException
com.myeclipse.hibernate.ServicetypeDAO.findAll(ServicetypeDAO.java:100)
com.indixium.models.RegistrationModel.<init>(RegistrationModel.java:27)
com.indixium.controllers.RegisterController.get(RegisterController.java:29)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
ОБНОВЛЕНИЕ СНОВА:
Итак, я нашел две статьи, которые выглядят многообещающими:
http://www.hildeberto.com/2008/05/hibernate-and-jersey-conflict-on.html
описывает, что и hibernate, и jersey используют asm.jar, но разные версии, поэтому существует конфликтующее поведение. Это говорит, чтобы решить это:
Чтобы разрешить этот конфликт, используйте cglib-nodep.jar вместо cglib.jar и оставьте версию 3.x ASM на Джерси. cglib-nodep.jar включает в себя некоторые классы ASM, требуемые cglib.jar, изменяя имя пакета, чтобы избежать конфликта классов.
К сожалению, я не знаю, как «использовать» разные банки для каждой библиотеки. Любая помощь по этому вопросу приветствуется.
Второе решение, которое я нашел, говорит об изменении файла pom.xml (что я также не знаю, как это сделать). Я безуспешно искал в моем проекте и на всем жестком диске файл pom.xml. Как я могу изменить pom.xml? Вот ссылка на второе решение:
http://blog.idm.fr/2009/04/jersey-hibernate-conflict.html
Если кто-то может помочь мне реализовать любой из них, это будет очень цениться. Спасибо.