Pull to refresh
  • by relevance
  • by date
  • by rating

Что такое сервлет и зачем нужен портлет?

Java
И так, дорогие друзья, я планирую открыть блог, посвящённый портальным технологиям.
Для разогрева, предлагаю вам коротенький рассказик, прочитав которую, вы узнаете что такое сервлет и зачем изобрели портлет. Места мало, обо всем напишу кратенько. Переписывать книжки, коих выпущено не одна сотня, я не собираюсь. Я буду писать о общих вещах, а так же о приёмах, которые существенно упрощают жизнь разработчику. Если вы хотите узнать больше, то лучше http://java.sun.com/javaee/index.jsp
вряд ли что-то может быть.
Приготовьтесь, вы ощутите мощь Java EE.
Начать ощущать
Total votes 23: ↑18 and ↓5 +13
Views91.5K
Comments 29

Настройка среды разработки отладки портлетов, запуск HelloWorld портлета.

Java

Цель:


Настроить среду для разработки и отладки портлетов из-под Windows XP.
Запустить первое портлетное приложение и понять, что установка прошла успешно.

Продолжение портлетоэпопеи
Total votes 15: ↑13 and ↓2 +11
Views3.9K
Comments 42

Установка Sun System Portal Server 7.1 update 1 на Windows 2003

Java
По просьбам трудящихся, пишу как установить портал на винду. К сожалению, я не осилил следующую проблему — как продеплоить сэмплы на портал, как запустить болг-портлет, вики-портлет и т.д. Исходя из логов, я пришел к выводу, что хардкод путей к файлам в билдовых скриптах не позволяет установить примеры и развернуть существующий функционал.
Тем не менее, портал ставится и работает.
Как я и обещал, через несколько дней будут готовы примеры портлетиков (через неделю диплом сдаю, пришлось отложить написание портлетов на «последипломие»). Затем поставлю портал 7.2 на линух и начну его ковырять.
И все-таки он встает
Total votes 4: ↑2 and ↓2 0
Views1.1K
Comments 4

Недокументированная возможность в WebSphere Portal 5.1 (общая сессия для портлета и сервлета)

Java

Была следующая задача:

написать портлет, который отображает график отчета, хранящегося в Когносе. Отчет Когноса может строиться очень и очень долго, от нескольких секунд до 20.
Заставлять ждать пользователя столько времени — ужасное решение.
Что же делать?
Total votes 2: ↑2 and ↓0 +2
Views1.1K
Comments 5

Корпоративный портал Jahia – обзор архитектуры (часть 1)

Java
Translation
В статье представлен высокоуровневый обзор архитектуры корпоративного портала Jahia.

Jahia – одна из немногих open source систем, которая объединяет Java EE портал и управление
контентом в один продукт. CMS является законченным решением, представляющим альтернативу порталам
от крупных компаний.

Обзор призван помочь читателю разобраться с различными компонентами системы и связями между ними.
Также данный обзор может послужить основой для понимания исходного кода системы, который является
свободно доступным.

Читать дальше →
Total votes 14: ↑8 and ↓6 +2
Views6.5K
Comments 2

Java EE 6. Что нового в Servlet API 3.0

Java


С выходом Java EE 6 на ряду со значительными изменениями в JPA 2.0 спецификации сервлетов 3.0 также притерпела ряд улучшений: упростилась разработка и процедура развертывания, конфигурирование стало более удобным, появилась поддержка асинхронных запросов и улучшилась модель безопасности. Далее я попытаюсь осветить основные изменения в API.

Программирование и развертывание сервлетов упростилось главным образом за счет введения аннотаций для декларирования сервлет (@WebServlet), фильтров (@WebFilter), листнеров (@WebListener) и ограничений безопасности (@ServletSecurity). Таким образом, и дескриптор развертывания web.xml стал опциональным элементом. Обращаю внимание, что сами компоненты Servlet API не стали POJO, привычную иерархию интерфейсов и классов никто не отменял. Также добавилась аннотация для поддержки загрузки файлов @MultipartConfig и для установки параметров инициализации @WebInitParam.

Пример Hello World сервлета
package net.ismailov.tests;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name="hw", urlPatterns = "/hello_world")
public class HelloWorld extends HttpServlet{

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    PrintWriter writer = response.getWriter();
    writer.println("<h1>Hello, World!</h1>");
    
  }

}


Читать дальше →
Total votes 47: ↑37 and ↓10 +27
Views20.3K
Comments 34

Java EE 6. Обзор JPA 2.0, часть 1: Введение

Java

Пожалуй, наибольшее количество изменений с выходом спецификации Java EE 6 было привнесено в JPA (Java Persistence API). В серии статей, начиная с этой, я планирую рассказать подбробно о каждом из нововведений.

Введение


Технология JPA является абстракцией над JDBC и позволяет быть независимым от SQL. Все классы и интерфейсы JPA расположены в пакете javax.persistence, основными составляющими технологии являются:
  • ORM (механизм объектно-реляционного отображения);
  • Entity manager API — позволяет осуществлять базовые операции CRUD;
  • JPQL и Criteria API — механизмы извлечения данных;
  • Управление транзакциями и блокировками (как с использованием JTA, так и без);
  • Механизмы обратных вызовов и listener-ов.

Читать дальше →
Total votes 31: ↑28 and ↓3 +25
Views15.5K
Comments 10

Java EE 6. Обзор JPA 2.0, часть 2: Коллекции

Java


image

Продолжение серии. Ранее: Java EE 6. Обзор JPA 2.0, часть 1: Введение. В данной статье я продолжаю рассматривать изменения в JPA.

Встроенные коллекции

Введенный в JPA 2.0 компонент ElementCollection позволяет задавать политики отображения для необычных в JPA 1.0 видов коллекций: коллекций embeddable объектов, либо коллекций «простых» типов (Integer, String и т.д.). Также это компонент используется при в определениях отношений с Map, в роли ключа которого выступают любого рода объекты, а в роли значения — embeddable или «простые» объекты.

Значения ElementCollection всегда хранятся в отдельных таблицах, которые задаются аннотацией @CollectionTable. CollectionTable отпределяет имя таблицы и @JoinColumn или @JoinColumns в случае составного первичного ключа.
Читать дальше →
Total votes 35: ↑27 and ↓8 +19
Views19.8K
Comments 2

Будущее построения архитектуры Java EE приложений становится яснее

Java
Translation
Известный JavaEE архитектор-фрилансер недавно опубликовал свое видение будущего в построении архитектуры корпоративных приложений. Далее идет вольный перевод.

Java EE 6 и Spring 3 оказались очень похожи — как минимум архитектура и дизайн отличаются лишь в деталях. Не вижу отличий и в процессе разработки, где JPA и SessionBean-ы в Glassfish можно заменить технологиями Spring.

Spring также идет со своим сервером приложений, который с 7 октября 2008 является open source сервером с коммерческой поддержкой. Если вам понадобится получить патчи старых версий Spring — вам будет необходимо преобрести коммерческую поддержку от SpringSource/VMWare. Для серьезных проектов вы будете вынуждены преобрести два пакета поддержки — для сервера приложений от вендора и один от SpringSource, хотя этом случае одновременное использование Java EE 5/6 опровдать сложно. В перспективе я вижу два возможных варианта:
  • Развертывание Spring-а на проприетарный tc сервер
  • Развертывание Java EE 6 приложений без Spring-а
Обозначенная выше дилемма также справедлива и для проектов по миграции — стоит ли использовать стек Java EE, либо мигрировать на Spring. Это скорее стратегическая или политическая дилемма, нежели технологическая. Конечно, можно еще самостоятельно собирать и распространять Spring, однако такой подход недопустим в большинстве коммерческих проектов.

Я считаю, что будущее корпоративной Java очень чистое — мы полностью используем либо Spring, либо стек Java EE, но не эти технологии вместе.

См. также Oracle опубликовал планы развития Glassfish
Total votes 8: ↑5 and ↓3 +2
Views3.1K
Comments 12

Собираем JavaEE приложение maven'ом

Lumber room
Когда переводил на maven свои ejb3-проекты, порядком намучился с настройкой проекта, подключением «правильных» библиотек. Информации или не было, или она была устаревшей. В работе я использую JBoss 5.1.0.GA, поэтому все примеры будут на его основе.
Задача. Нужно создать maven2 проект для JBoss. Пусть, это будет Enterprise Application. Внутри — ejb3 модуль и web-приложение.
Читать дальше →
Total votes 17: ↑14 and ↓3 +11
Views3.4K
Comments 8

Database Connection Pool

Java
Добрый день, хабралюди!
2 недели назад я начал работать juior java разработчиком, и, соответственно, получать много нового для себя опыта. Сегодня я решил совместить приятное с полезным и начать этот опыт оформлять в письменные мысли — в виде статей о тех технологиях, принципах и приёмах, с которыми я столкнулся на своём джуниорском пути. Нижеследующая статья — первая среди подобных, и выкладывая её здесь, я хочу, во-первых, понять, нужны ли хабрасообществу подобные вещи — рассказы не умудрённых опытом и сотнями проектов старожилов, а небольшие попытки поделится опытом от джуниора джуниору, — а во-вторых, как обычно, услышать замечания, исправления и критику.
Спасибо за внимание.


Подавляющее большинство современных веб-приложений использует базы данных для хранения информации. Приложение может обмениваться информацией с БД, используя соединение (database connection). Если создавать при каждом обращении к БД, получается проигрыш во времени: выполнение транзакции может занять несколько милисекунд, в то время как на создание соединения может уйти до нескольких секунд. С другой стороны, можно создать одно-единственное соединение (например, используя шаблон "Singleton") и обращаться к базе данных только через него. Но это решение чревато проблемами, в случае высокой нагрузки: если одновременно сто пользователей попытается получить доступ к базе данных используя одно соединение, образуется очередь, что также пагубно сказывается на производительности приложения.

Database Connection Pool (dbcp) — это способ решения изложенной выше проблемы.
Читать дальше →
Total votes 49: ↑34 and ↓15 +19
Views137.9K
Comments 38

Интересные задания для джуниора — миф или реальность?

GTD
Поспорил я с одногруппником на тему того, может ли джуниор получать интересные задания.
Его позиция такая, что он бы хотел найти работу, где его сразу поставят в какой-нибудь новый проект (не поддержка, а разработка), с новыми технологиями (Spring не ниже 3.0, Hibernate не ниже 3.5, ну и так далее), и дадут «какие-нибудь интересные таски». Он уже успел несколько месяцев поработать над 6-летним проектом без каких-либо фреймворком — только сервлеты и JSP c JSTL, — ему не понравилось и он ушёл, в надежде найти что-то поинтересней.

Я же считаю, что вариант, который описывает он, конечно, более интересен и привлекателен, но сильно менее реален. Я за свой рабочий месяц над не таким современным проектом (Spring 2.5, iBatis 2.3, Oracle 10g) успел узнать и попробовать очень многое, как на мой взгляд. Пусть у меня не было возможности углубиться в Java core, изучить на практие побольше design patterns и так далее, но я успел разобраться с основами сервлетов и JSP, некоторыми особенностями Tomcat'a, узнать основные принципы, заложенные в работу Spring'a (например, DI и реализацию MVC), поработал с PL/SQL и ещё много-много всего. Да, последний мой таск (перенос inline SQL в хранимые процедуры) длится уже неделю и ещё наверное столько же будет длится, но даже в рамках него у меня ещё остались не до конца решённые задачи, которые ещё принесут мне фан и опыт. Он же, например, не хочет разрабатывать хранимые процедуры на PL/SQL, а хочет писать по больше именно java-кода, так как хочет«развиваться как Java developer».

Рассудите нас. Чья правда правдивее?
Total votes 19: ↑4 and ↓15 -11
Views2.8K
Comments 21

Использование MongoDB в Java EE 6

Java


MongoDB — документо-ориентированная NoSQL СУБД, не требующая описания схемы таблиц. Больше о ней можно узнать на оф. сайте, а в данной статье я опишу пример использования MongoDB в Java EE 6 приложении.
Читать дальше →
Total votes 36: ↑33 and ↓3 +30
Views24.7K
Comments 22

«Разбор полетов» — episode 5 — Предновогодний

Lumber room
Я и коллега aib представляем вашему вниманию очередной пятый предпраздничный выпуск популярного в узких кругах, разговорного IT-тематического подкаста «Разбор Полетов».
В этом выпуске:
  • Полезняшка — 5 метров колючей проволоки-скрещиваем ежа и ужа в домашних условиях http://jodd.org/doc/jerry/index.html
  • Ванга отдыхает - 
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Views268
Comments 0

Интеграция Groovy в JEE приложение

JavaGroovy & Grails
Sandbox
Tutorial
В одну телегу впрячь не можно
Коня и трепетную лань
                        А.С. Пушкин

Всем привет!

В данной заметке я хочу рассказать, как интегрировать язык Groovy в существующее JEE приложение на основе Maven. Выражаю благодарность Антону Щастному schaan за разрешение на использование исходного кода его проекта в качестве отправной точки. Поэтому данный топик можно считать продолжением его статьи Учимся готовить: Spring 3 MVC + Spring Security + Hibernate.

Начнем.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views15K
Comments 24

Новые перспективы Java Enterprise с Polyglot JVM

EPAMJava
В этой статье хочу поделиться размышлениями об архитектуре серверных платформ для корпоративных приложений на Java с использованием Java EE, Spring, Akka.
Почему возникло желание написать? На JavaOne 2012 много было рассказано о трендах и изменениях в мире Java и JVM — Polyglot JVM, лямбды, модульность. На конференции возникло ощущение, что все наработки Java EE не должны зависеть от языка программирования. Сейчас часто задают вопрос – какой язык заменит Java? Но тогда куда девать все существующие технологии разработки корпоративных приложений? Эти технологии однозначно имеют ценность. Можно ли одновременно заменить язык программирования и при этом сохранить существующие наработки и сделанные инвестиции? Видимо да.
Теперь постараюсь подробнее – о влиянии тренда Polyglot JVM.
Введение Polyglot JVM достигает двух целей: открывает путь инновациям и позволяет сохранить все технологии Java в секторе корпоративных приложений. Но путь к этим выводам будет долгим;-)
Эта статья – для разработчиков корпоративных приложений. Надеюсь, она поможет систематизировать знания по архитектурам серверных платформ на базе Java и, возможно, вдохновит расширить диапазон используемых языков.
Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Views14.8K
Comments 12

JUG.ru: о петербургской Java User Group за несколько минут

JUG Ru GroupJava
Привет, хабровчане!

В преддверии большой встречи JUG.ru с Барухом Садогурским и Евгением Борисовым я расскажу вам о том, как появился новый JUG.ru:
  • что нас мотивировало
  • куда мы смотрели
  • кто делал JUG до нас
  • с чего мы начинали
  • как организовали первую встречу
  • к чему пришли




Давай, рассказывай!
Total votes 35: ↑34 and ↓1 +33
Views7.7K
Comments 26