Java на habrahabr

Февраль 3, 2012

 

JAVA / [Из песочницы] SOAP-сервер на Java при участии Apache CXF и Spring

За последнее время появилось несколько статей, рассказывающих о протоколе SOAP, а также описывающих процесс создания сервера на различных языках и платформах. Продолжим тему. В этой статье будет описываться создание сервера на языке Java с использование Apache CXF и Spring Framework. Предполагается, что читатель уже имеет общее представление об упомянутом протоколе, а также о работе с ant и maven. Для того, чтобы сделать задачу немного интереснее, добавим начальное условие: дана WSDL-схема, описывающая веб-сервис. Итак…
(Картинка из статьи на Wikipedia.)

Java на habrahabr

Январь 30, 2012

 

JAVA / [PODCAST] «Разбор полетов» — episode 8 — Много смеха и улыбок

Творческий коллектив редакции подкаста «Разбор полетов» представляет вашему вниманию очередной восьмой выпуск разговорно-болтологического IT-тематического подкаста «Разбор полетов».
В этом выпуске:


p.s. Спецкорр подкаста @a_abashev разыскивает израильских спецов для записи спецвыпуска на Земле обетованной. Подробности в выпуске

Блог о программировании

Декабрь 30, 2011

 

Работа с Maven + Tomcat

Maven и Tomcat


Ни для кого не секрет, что maven-ом можно деплоить проекты в Apache Tomcat.
Правда многие разработчики все-таки используют функции, встроенные в среду разработки (в Netbeans - из коробки, в Eclipse - ставим плагин).
Это удобно и просто, но к сожалению, мне приходится часто "перескакивать" с разных IDE и поэтому в некоторых своих проектах я предпочитаю сразу настроить tomcat:deploy.

На данный момент использую "tomcat-maven-plugin".

Запуск осуществляется командой: mvn tomcat:deploy.

Для удобство можно указать в IDE, чтобы эта команда выполнялась на действие "Run" или повесить на нее какой-нибудь HotKey.

Сборку финальной версии и развертывание приложения на "боевом" сервере, я, как правило, осуществляю вручную, т.к. далеко не всегда на реальных работающих серверах из внешнего мира доступен интерфейс для переразвертывания веб-приложений.

В случае, если мы работаем в простых условиях, когда у нас имеется свой apache tomcat-ом установленный на локальном компьютере, то настройка довольно простая.
Нам нужно три файла.

  • tomcat-users.xml
  • settings.xml
  • pom.xml
  • tomcat-users.xml

    Файл, как правило, находится рядом с другими файлами для настройки сервера: APACHE_TOMCAT_DIR/conf/tomcat-users.xml

    В нем нужно проверить, что создана роль "manager" и существует пользователь с этой ролью.
    Что-то вроде этого:

    <tomcat-users> <role rolename="manager"/> <user username="user" password="123456" roles="manager"/> </tomcat-users>

    Таким образом, apache tomcat будет знать, что пользователю "user" можно развертывать у него war-ики.

    settings.xml

    Maven-овский файл с настройками. Есть глобальный файл на систему, есть под каждого пользователя.

    Я меняю как правило свой, пользовательский, он находится здесь:
    ${user.home}/.m2/settings.xml

    Если в Windows, то это будет файл "C:\Documents and Settings\имя_пользователя\.m2\settings.xml"

    В нем нужно указать Maven-у с каким логином и паролем нужно обращаться на сервер, чтобы запустить приложение.

    <?xml version="1.0" encoding="UTF-8"?> <settings> <servers> <server> <!-- id это просто идентификатор, используете удобное для вас название! Я называю так, чтобы не запутаться, т.к. у меня есть еще сервера других версий и других целей. --> <id>apache-tomcat-6.0.32</id> <!-- имя пользователя, которое вы указали в tomcat-users.xml --> <username>user</username> <!-- ну и естественно его пароль из tomcat-users.xml --> <password>123456</password> </server> </servers> </settings> </xml>

    pom.xml

    Теперь в pom.xml указываем настройки для деплойщика: project/build/plugins/plugin tomcat-maven-plugin

    <project> ... <build> ... <plugins> ... <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <!-- id-шник из settings.xml --> <server>apache-tomcat-6.0.32</server> <url>http://localhost:8080/manager</url> <path>/mywebapp</path> </configuration> </plugin> ... </plugins> ... </build> ... </project>

    Таким образом в pom.xml указывается только id сервера. Этот способ хорош тем, что вы не показываете в этом файле свой логин и пароль от личного tomcat-а. Это важно поскольку pom.xml часто бывает общественным файлом (т.к. хранят его в репозиториях вместе с исходниками).

    Если резюмировать, то в целом все довольно просто. Нужно показать tomcat-у кому можно деплоить (tomcat-users.xml), показать maven-у к какому серверу и с каким логином и паролем стучаться (settings.xml) и настроить файл проекта, чтобы maven знал на какой конкретно сервер разворачивать (pom.xml).

    Java на habrahabr

    Ноябрь 23, 2011

     

    JAVA / Build in the Cloud: Jelastic + Maven

    Хорошие новости для Java разработчиков. Теперь вы можете собирать свои проекты прямо в Jelastic, уже нет необходимости в локальной сборке и загрузке WAR архива.
    Что это дает? Во-первых, процесс деплоя происходит гораздо быстрее и меньше расходуется трафик. Архив может быть довольно большим. Раньше вы были вынуждены перезаливать его в ваше окружение каждый раз после каких-либо модификаций, теперь Jelastic сам берет измененный код с репозитaриев контроля версий и восстанавливает приложение в облаке.
    Во-вторых, вы получаете все преимущества облака и продолжаете использовать свой компьютер без всяких дополнительных нагрузок.
    Чтобы создать окружение с Maven просто кликните по соответствующей пиктограмме в окне Environment topology.

    Java на habrahabr

    Ноябрь 20, 2011

     

    JAVA / [Перевод] Red Hat: Позвольте «облаку» OpenShift компилировать ваши Java-приложения

    Решил перевести новость о том, что OpenShift теперь объединяет Jenkins, JBoss Tools и Maven, позволяя Java-разработчикам программировать, собирать, развёртывать и масштабировать приложение в облаке.

    Red Hat предлагает вам использовать OpenShift не только для хостинга приложений, но и для всего цикла разработки ПО. Вы можете программировать, компилировать и улучшать своё ПО прямо в «облаке», не используя для этого десктоп или мощный ноутбук.

    OpenShift — PaaS-облако, о запуске которого Red Hat объявил в мае. Эта облачная платформа существует в трёх версиях — Express, Flex и Power и позиционируется, как альтернатива Microsoft Azure или Google App Engine. Главное преимущество облачных вычислений состоит в том, что они автоматически масштабируют ресурсы, настолько, насколько это требуется для текущей нагрузки.

    Java на habrahabr

    Октябрь 25, 2011

     

    JAVA / [Из песочницы] От велосипеда к Maven

    Так уж сложилось, что до недавнего времени все проекты, написанные мною на Java я собирал, кхм, за меня собирал NetBeans. И меня такой расклад вещей вполне устраивал: после сборки всего проекта всё аккуратно складывалось в директорию dist со всеми подвязанными библиотеками, оставалось накидать туда пользовательской документации, необходимых native-библиотек (например от Firebird) и в путь, т.е. всё в архив. Когда то я делал это вручную, потом велосипедом, а потом уже Maven'ом. Под катом находится история о том, как же я пришел в стан maven и что из этого получилось.

    Java на habrahabr

    Октябрь 21, 2011

     

    JAVA / [Из песочницы] Делаем релизы с помощью Maven в Java

    О чем эта статья?


    Эта статья о том:
  • Что такое релиз?
  • Как нумеруются релизы?
  • Зачем при релизе нужен бранч?
  • Почему релиз это больше, чем просто jar (war, ear, zip, etc)?
  • Что такое maven-release-plugin?
  • Делаем бранч c помощью release:branch.
  • Подготовка к релизу с помощью release:prepare.
  • Выпускаем релиз с помощью release:perform.

  • Для чтения и понимания этой статьи я рекомендую освежить свои знания по Maven. Многие термины могут быть непонятны без понимания этой технологии.

    Блог о программировании

    Август 6, 2011

     

    UML в Javadoc через maven+umlgraph

    Где-то год назад писал про различные UML-редакторы.
    К сожалению, ситуация толком не изменилась, пока действительно удобного на 100% для себя инструмента для создания UML-диаграмм не нашел.
    UMLet - хорошо спасает в 80% случаев для быстрого прототипирования, но иногда его не хватает.

    Сейчас речь пойдет не о нем, а о UMLGraph.
    Это инструмент, который позволяет осуществлять декларативный способ рисования uml-диаграмм. Другими словами UML диаграммы создаются в текстовом виде, а не рисуется мышкой. Некоторым программистам (в частности мне) работать с текстом несколько удобней, чем с мышкой и со множеством графических объектов.

    Возможностей у UMLGraph довольно много, но лично меня интересовали только следующие его возможности:

    1. Рисование только диаграмм классов. Использование umlgraph для создания диаграмм последовательности, развертывания и т.д. мне не интересно.
    2. Встраивание полученных диаграмм в JavaDoc.
    3. Связка с maven-ом.

    В результате некоторых манипуляций, можно получить следующий результат:

    Что нужно для этого сделать:
    1. Необходимо установить Graphiz. Это утилита для рисования различных диаграмм, через нее будем создавать итоговые рисунки.

    Если у вас Windows, то для этого нужно:
    - Зайти на сайт http://www.graphviz.org/.
    - Выбрать пункт Download.
    - Прочитать лицензию, если все ОК - нажать "Agreе".
    - Выбрать дистрибутив под Windows и установить.

    Если у вас например Ubuntu, то все намного проще! Поскольку graphviz есть в стандартных репах, то вы можете установить через apt:

    sudo apt-get install graphviz

    2. Прописать в pom.xml использование umlgraph

    <project ...> ... <reporting> <plugins> <plugin> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet> <docletArtifact> <groupId>org.umlgraph</groupId> <artifactId>doclet</artifactId> <version>5.1</version> </docletArtifact> <additionalparam>-views -inferrel -inferdep -quiet -hide java.* -collpackages java.util.* -qualify -postfixpackage -attributes -operations -types -nodefontclassname "Arial" -nodefontclassabstractname "Arial Italic" -nodefontclasssize 10 -nodefontname "Arial" -nodefontabstractname "Arial Italic" -nodefontsize 10 -nodefonttagname "Arial Italic" -nodefonttagsize 10 -nodefontpackagename "Arial Italic" -nodefontpackagesize 10 -edgefontsize 10 </additionalparam> <useStandardDocletOptions>true</useStandardDocletOptions> </configuration> </plugin> </plugins> </reporting> ... </project>

    В additionalparam можно указать свои настройки, чтобы настроить отображение диаграмм на свой вкус и цвет. В этом примере я немного поигрался с шрифтами. Список возможных настроек можно посмотреть здесь: http://www.umlgraph.org/doc/cd-opt.html.

    3. Проверить, что программы из Graphiz установлены и доступен. Например можно набрать для этого в командной строке:

    dot --help

    4. Запустить mvn site. Как обычно в папке target появится директория с документацией.

    Выкладываю в для наглядности maven-овский проект umldemo.zip и
    полученную в итоге документацию umldemo-apidoc.zip.

    Пару полезных заметок:
    1. Чтобы исключить класс из диаграммы можно использовать опцию @hidden (см. пример PostA.java)
    2. Список возможных опций можно посмотреть здесь: http://www.umlgraph.org/doc/cd-model.html

    Java на habrahabr

    Июнь 30, 2011

     

    JAVA / [Опрос] Как вы обновляете зависимости проектов (maven, ivy, просто склад jar-ок)

    Java на habrahabr

    Май 17, 2011

     

    JAVA / Хранение и вывод версии в java-проекте

    Думаю, у многих возникала задача точно знать версию выпущенного jar'a или war'a. Причем хотелось бы иметь способ, позволяющий «простому пользователю» определить версию такого архива. Ниже приведен способ решения этой задачи.

     
    << < 1 из 2 > >>