Toplink Essentials on Caucho Resin

Рубрика: Development, Java | 23 January 2008, 15:28 | Vadim Voituk

Опять же себе на заметку, но может кто уже наступал…

Как оказалось, использовать Oracle Toplink Essentials как JPA-провайдер в среде контейнера Resin 3 штатными средствами невозможно.
Такое поведение нарушает требования 0000005.8 и 0000005.9 спецификации “Enterprise JavaBeans 3.0″ (JSR-220).
Хотя тех, кто хоть раз имел дело с Caucho Resin, подобные нарушения спецификаций, наверное, уже давно не удивляют:)

Хочешь-не-хочешь, но на Resin 3, приходится использовать встроенную JPA-имплементацию – Amber.
(с ужасом жду миграции на Resin 3)

Сам же больше дня проигрался с Resin 2.x (ни о каком Abmer-е ещё речи быть не могло) в тщетных попытках подключить к нему Toplink Essentials.
Как не крути, а не хочет Resin видеть persistence.xml.
Самое неприятное было то, что проблема состояла в наличии файла ejb-30.jar из поставки Resin 3.x в lib-директории Resin 2.x (невесть откуда он там взялся!).
Так вот в этом самом ejb-30.jar находилась собственная реализация класса javax.persistence.Persistence, которая о Toplink-е ничего знать не знала.

Проблема решилась путем удаления оного файла.

Комментариев: 12

12 Responses to “Toplink Essentials on Caucho Resin”

Комментарии:

  1. Anton Naumov

    Cauche Resin…. вот расскажите, зачем и кому нужен этот псевдоаппликейшн сервер? у него всего хорошего — hessian. а все остальное ужасно.

  2. Vadim Voituk

    Эхо войны! (с) из к/ф “Брат 2″

    Почему же так категорично “псевдоапликейшн”? Они стараются :)

  3. Chabster

    Ну, и зачем тебе TopLink?

  4. Vadim Voituk

    Чабстер: Я даже не нашелся что ответить.

    Что же касается Resin – IMHO самый user-firendly application server – устанавливается и конфигурируется достаточно просто, легко кластеризируется и прямо с коробки имеет скриптовый язык (php5) и MySQL JDBC дравер – что ещё нужно для успешного старта?
    Единственное что меня смущает, так это сложность в дальнейшем “сьехать” на другой AS (уверен что это часть их маркетинга :).

  5. Anton Naumov

    2Vadim Voituk, потому что правда. а стараются — недостаточно, как по мне. реализация EJB через… механизм сервлетов. какой гений это придумал? они умудрились нарушить любые возможные спецификации, наделать немеряно воркараундов и впервые выставить на арену сервлет контейнер, которые “поддерживает” EJB.
    насчет user-friendly не соглашусь. JBoss намного лучше. да, конфиги у него сложнее, но они построены очень стройно, логично и понятно. при этом JBoss полноценный AS. а съехать на другой сервер всегда сложно. это не часть политики — это следствие реализации. с EJB 3.0 стало проще, а раньше….
    p.s. поддержка PHP в Java AS? no, thank you.

  6. Vadim Voituk

    Антон,
    >> поддержка PHP в Java AS?
    Зря вы так – на самом деле подобные вещи позволяют очень быстро набросать и тут же обкатать proof of concept, и недооценивать их не стоит. Туда же можно отнести и Groovy – только его ещё нужно конфигурить, а Quercus – не нужно.

    А чем вам их реализация EJB не нравится? И о какой версии EJB говорим? – я готов поотстаивать 3ю (даже с таким чудом инженерной мысли как Amber:)

    И если не лень, расскажите пожалуйста о плюсах Hessian – как по мне ещё один нестандартизированный велосипед (но, признаюсь, сам не пробовал).

  7. Anton Naumov

    Вадим,
    свежесть бывает первая, она же последняя (с), т.е. POC может быть написан на Java или на PHP. соотвественно проект потом реализуется на Java или на PHP. не вижу смысла смешивать. тем более, что во-первых, я PHP уже забыл и вспоминать не хочу, во-вторых, по моим ощущениям разница между Java и PHP — это как разница между танком и мотоциклом. разные назначения, разная стоимость реализации….

    а у них нет, ну или по-крайней мере не было, реализации EJB. 2.0 и 2.1 процессилось в сервлеты. т.е. вокруг каждого бина создавался враппер, который делал из бина сервлет. при всем уважении — это не реализация EJB. это извращение.

    самй главный плюс Hessian — нативная реализация web services/SOAP. а следовательно быстродействие намного лучше, чем у Axis. но я лично не занимался сравнение. поэтому подробно сейчас описать не смогу все плюсы и минусы. нужно посмотреть в сети.

  8. Vadim Voituk

    Антон,

    Спорить о нужности реализации POC на PHP и переносе на Java не буду – у каждого свой подход к прототипированию.

    А EJB 2.x на Resin есть, причем ещё даже на Resin 2.x

    А умеет ли этот Hessian работать с SOAP with Attachment?

  9. Kefir

    Ну а если покопаться, выкинуть резиновую реализацию EJB и вставить свою?

  10. Kefir

    Ну, т.е. не свою, а глассфишную, например.

  11. Chabster

    > Чабстер: Я даже не нашелся что ответить.
    Значит оно тебе нужно, как баба кобыле :-D.

    Да, и опенсорсный ТопЛинк к коммерческому имеет такое-же отношение, как баба к кобыле.

  12. Vadim Voituk

    Kefir,
    Попробовал – с пол-пинка не получилось. Дальше не пробовал потому как не нужно (живем пока на resin 2.x)

    Chabster,
    А тебе только дай повод пофлеймить :)

Leave a Reply