2012-06-03 4 views
1

Я пытаюсь получить Tomcat 7 (поставляется с OpenEJB) для работы с Jersey 1.9. У меня была служба Джерси RestFUL, работающая с Tomcat 6. Но как только я развернул файл войны в Tomcat 7 (OpenEJB), я получил следующую ошибку.Tomcat 7 OpenEJB и Jersey

Я создал новый динамический веб-проект в Eclipse и добавил следующие баночки в папку WEB-INF/lib без добавления дополнительного кода, но у меня все еще такая же ошибка. Похоже, OpenEJB от Tomcat 7 не нравится баночки Джерси.

  • ASM-3.1.jar
  • Джерси-ядро-1,9-ea04.jar
  • джерси-сервер-1,9-ea04.jar

Вызванный: org.apache.openejb. OpenEJBException: Невозможно создать экземпляр класса Application: com.sun.jersey.api.core.ResourceConfig: нуль на org.apache.openejb.config.AnnotationDeployer $ ProcessAnnotatedBeans.deploy (AnnotationDeployer.java:1685) в org.apache .openejb.config.AnnotationDe ployer $ ProcessAnnotatedBeans.deploy (AnnotationDeployer.java:1482) at org.apache.openejb.config.AnnotationDeployer.deploy (AnnotationDeployer.java:293) at org.apache.openejb.config.ConfigurationFactory $ Chain.deploy (ConfigurationFactory. Java: 263) в org.apache.openejb.config.ConfigurationFactory.configureApplication (ConfigurationFactory.java:693) в org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal (TomcatWebAppBuilder.java:588) ... больше 23

Вызванный: java.lang.InstantiationException на sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance (InstantiationExceptionConstructorAccessorImpl.java:30) в java.lang.reflect.Con structor.newInstance (Constructor.java:513) at java.lang.Class.newInstance0 (Class.java:355) at java.lang.Class.newInstance (Class.java:308) at org.apache.openejb. config.AnnotationDeployer $ ProcessAnnotatedBeans.deploy (AnnotationDeployer.java:1682)

ответ

2

Отъезд Apache TomEE Plus это Tomcat с JAX-RS, уже интегрированным. Вы можете пропустить часть, где вы просматриваете библиотеки, и попытаться интегрировать их и перейти к части кода написания.

Вот видео о том, как настроить его в Eclipse using the Tomcat web adpater и простой динамический веб-проект.

На заметку об использовании EJB в качестве служб RESTful есть много людей, которые делают это особенно, когда участвует JPA. Помимо получения транзакций бесплатно, вам также не нужен подкласс JAX-RS Application или для отображения любых сервлетов REST. Маленький перк, но приятный.

Как хорошо вы можете выставить один и тот же класс, как @Remote объекта и вызывать его через RMI, как JAX-WS @WebService и вызывать его через HTTP/SOAP или просто аннотировать его @LocalBean и вы можете использовать один и тот же объект внутри без HTTP-накладные расходы. Приятно иметь гибкость.

0

Эта трассировка стека заставляет меня задаться вопросом, имеет ли ResourceConfig конструктор по умолчанию без аргументов. Вы увидите это, если ожидается развертывание OpenEJB и не найдет его.

Поскольку REST является HTTP API для веб-служб, почему вы используете его с OpenEJB? Я бы предположил, что эти два будут взаимоисключающими. Я бы писал службы, используя службы EJB сеанса или службы REST, но не оба.

+0

Я пытаюсь создать веб-сайт электронной коммерции Java ee 6. Я нахожусь на стадии выяснения, какие технологии использовать. Я надеялся использовать веб-службу RestFUL для запросов на обслуживание и использовать EJB beans для обработки транзакций бизнес-сервиса. Поэтому я подумал, что для этого мне понадобится Tomcat 7 (OpenEJB). Является ли это хорошей причиной для использования обоих? – hajime

+0

Мое личное предпочтение - передать EJB и использовать веб-службы с Spring, но это всего лишь один выбор. – duffymo

+0

+1 для весны и -1 для EJB – Pidster

Смежные вопросы