Существуют ли библиотеки cpython, которые работают с jsr168 и / или jsr286?

На портале Java вы можете иметь портлеты, содержащие данные, предоставленные другими приложениями. Мы хотим заменить наш существующий портал Java приложением Django, что означает дублирование способности портала Java отображать портлеты. Обсуждаемые нами две спецификации Sun - JSR168 и JSR286.

Мне нужно решение cPython. Не Jython или Java. Ничего против этих инструментов, мы просто не используем их. Для справки, Portletpy на основе Jython делает противоположное тому, что мы стремимся сделать.

Кроме того, я подозреваю, что этот вопрос был вызван неправильным пониманием нашей части того, как работает спецификация JSR168/JSR286. Я думаю, что JSR168/JSR286 является тайным протоколом для передачи некоторого вида контента между отдельными приложениями, но в мире Java это обычно делается другими методами, такими как SOAP. Вместо этого проблема может заключаться в том, что эти протоколы являются просто определениями того, как отображать объекты содержимого в представлениях. Если все, что нам нужно сделать, это обрабатывать вызовы SOAP и отображать данные, то весь этот вопрос спорен.

Простое изображение архитектуры ниже того, что мы хотим сделать:

альтернативный текст

2 ответа

Решение

Я не уверен, что вы можете сделать это. Из JSR 168:

JSR 168 Обработка запросов / ответов

Если я правильно понимаю, вы хотите, чтобы приложение Django заняло место существующего "Java Portal/Portlet Container" на диаграмме. К сожалению, интерфейс между контейнером портлетов и отдельными портлетами использует вызовы API в памяти, а не как веб-сервис. Нет простого URL-подобного интерфейса, в котором вы можете вызвать фрагмент Java, чтобы получить фрагмент HTML, который затем включите в страницу, обслуживаемую Django.

JSR 286 является обновлением, и, хотя оно улучшает механизмы обмена данными между портлетами, а также обслуживает ресурсы из портлетов, на самом деле это радикально не меняет приведенную выше модель.

Я не говорю, что это невозможно сделать, просто нет простого стандартного способа сделать это.

Одним из способов обойти это может быть использование производителя WSRP (веб-сервисов для удаленных портлетов, см. Википедию), который преобразует JSR 168/286 в веб-сервисы и использует их из django. Но кажется, что WSRP не был очень популярен, и я не смог найти никаких реализаций платформы Python (хотя частичные работы могли существовать). Кроме того, я также заинтересован в этой теме.

Другие вопросы по тегам