четверг, 24 декабря 2009 г.

Spring and file uploading

There are many guide how to upload file in spring framework. For example you can use ref .
But when you use it remember:
  • Add multipartResolver bean to spring.xml file!
  • Add fileupload.jar and commons-io.jar from http://commons.apache.org/downloads/download_fileupload.cgi
  • You can use Yahoo uploader or something that. If you do it add parameter name to request.
    For example in yahoo widget use:
    uploader.upload(fileID, url, "post", {}, "file");
  • Remember! SWF can not support cookies. That meens you droped current session. For resolve it simple add ;jsessionid=valuees to upload url.
    Example:
    var url="/reports/uploadFile;jsessionid=F34C5040A029C61658E8CC7A73841CCC"
  • Don't forget return response 200 from controller.
    Example:
    1 @RequestMapping(value = "/reports/uploadFile", method = RequestMethod.POST)
    2 public void uploadFile(@RequestParam("file") MultipartFile file, HttpServletResponse response) throws IOException {
    3
    4 reportStorageService.saveFile(file.getName(), file.getContentType(), file.getSize(), file.getBytes());
    5
    6 response.setStatus(HttpServletResponse.SC_OK);
    7
    8 }

пятница, 18 декабря 2009 г.

Debuging Hadoop applications in Eclipse (Linux & Windows)

  1. Install Java 1.6.x, ssh and download Haddop. For windows need also install Cygwin.
  2. Then configure environments for running haddop in standeloune mode. See Hadoop quick start guide for how to do it.
  3. Go to ${hadoop}/bin folder and create hdebug file using existing hadoop file (simple copy and rename).
  4. In the  hdebug file find strings:
    1 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.dir=$HADOOP_LOG_DIR"
    2 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.file=$HADOOP_LOGFILE"
    3 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.home.dir=$HADOOP_HOME"
    4 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.id.str=$HADOOP_IDENT_STRING"
    5 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.root.logger=${HADOOP_ROOT_LOGGER:-INFO,console}"
    6 if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then
    7 HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$JAVA_LIBRARY_PATH"
    8 fi
    and add new:
    1 HADOOP_OPTS="$HADOOP_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=y"
    you can get something like:
    1 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.dir=$HADOOP_LOG_DIR"
    2 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.file=$HADOOP_LOGFILE"
    3 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.home.dir=$HADOOP_HOME"
    4 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.id.str=$HADOOP_IDENT_STRING"
    5 HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.root.logger=${HADOOP_ROOT_LOGGER:-INFO,console}"
    6 HADOOP_OPTS="$HADOOP_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=y"
    7 if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then
    8 HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$JAVA_LIBRARY_PATH"
    9 fi
  5. Run your application using hdebug file instead of hadoop. Example start command:
    1 ${hadoop}/bin/hdebug jar your-app.jar
    You can see log:
    [hadoop_log_1.GIF]
  6. Open Eclipse. Go to menu Run->Debug configurations... and create new Remoute Java Application configuration.
    On Connect tab: choice your project, select Standart connection type, set host (local), set Port: 8001.
    On Source tab: Add your project.
  7. Starts debug, and enjoy :)

среда, 30 сентября 2009 г.

Hadoop workflow


Познавательная диаграмка о схеме работы хадупа

среда, 11 марта 2009 г.

Eclipse 3.4.*. Управление плагинами.

В новой версии эклипса измененно управление плагинами. Теперь их нельзя дизейблить используя Help->Software Updates.
Для включения и отключения плагинов используйте окно Window->Preferences закладка General->Startup and Shutdown

среда, 4 февраля 2009 г.

Web Приложение на базе Spring MVC

Это статья заготовка для быстрого старта разработки простоги веб приложения основаного на Spring MVS.
для запуска понадобятся следующие библиотеки:
  1. Spring 2.5.5 (commons-collections.jar, commons-lang.jar, commons-logging.jar, spring.jar, spring-webmvc.jar, servlet-api.jar)
  2. spring validation (spring-modules-validation.jar из пакета pring Modules 0.9)
  3. standard jsp taglibs (jstl.jar, standard.jar)
  4. log4j-1.2.13.jar - для логирования.
Скопируйте их в папку {SpringWebTemplate}/webapp/WEB-INF/lib.

для построения метрики и явадоков с помощью анта понадобятся библиотеки jdepend-2.9.jar, statsvn.jar, которые необходимо поместить в папку {SpringWebTemplate}/compile-lib

В заготовке описан пример однога сервиса, которий используется контроллерами. В контроллере "MainController" показан пример передачи бина на страницу, а также примеры 2-х типов перенаправления запросов пользователя. В контроллере "CalculatorController" показан пример обработки формы (передача значений на форму, считывание введенных пользователем данных, их валидация, показ ошибок и результатов).
Пример состоит из двух страниц:
  • /main.htm - имеет стандартную разметку с относительными ссылками на файлы css и js. В качестве примера вывода динамического содержимого - выводится текущее время сервера
  • /calc.htm - страница с формой. Считывает 2 числа и выводит их сумму. Если пользователь введет некоректные данные показываются ошибки валидации. На странице есть 2 примера сообщений валидации: для первого поля сообщение задается в класе формы, для второго - на jsp странице
Скачать пример с библиотеками(7.7мб)
Скачать пример без библиотек
Доп. литература:
Отличная статья с примером о валидации в спринге

Eclipse настройка плагина к Tomcat

Тысячу раз описано поэтому очень коротко.
  1. загружаем Sysdeo Eclipse Tomcat Launcher и распаковываем его в папку {eclipse_home}\plugins
  2. запускаем Eclipse, при этом на панели кнопок появляется три иконки
  3. настраиваем плагин: Windows->Preference указываем путь к локально установленному томкету, выбираем Context directory - {tomcat}\conf\Catalina\localhost; JVM Setting - добавляем "-Xms128m -Xmx512m"; Source path - выбирае проект
  4. настраиваем томкет: в папке {tomcat}\conf\Catalina\localhost создаем файл {project_name}.xml

Пример файла {project_name}.xml:
<?xml version='1.0' encoding='utf-8'?>
<Context path="/MyApp" reloadable="true" docBase="D:\works\eclipse\workspace\SpringWebTemplate\webapp\ "></Context>

пятница, 9 января 2009 г.

Eclipse. Горячие клавиши

ctrl + shift + Lпоказать гарячие клавиши
ctrl + Aвыделить все
ctrl + Fотформатировать выделенный фрагмент
ctrl + F3показать структуру класса
ctrl + TПоказать иерархию наследования класса
ctrl + shift + Tнайти класс (можно использовать маску)
ctrl + shift + HПоказать иерархию наследования класса
ctrl + alt + HПоказать иерархию вызовов метода
ctrl + alt + Rпереименовать выделенный фрагмент
ctrl + /закоментировать используя //
ctrl + shift + /закоментировать используя /* */
alt + shift + Jдобавить javadoc
ctrl + shift + Yперевести в нижний регистр
ctrl + shift + Xперевести в верхний регистр
ctrl + F6Переключение между открытыми окнами

понедельник, 5 января 2009 г.

MySQL Создание и удаление БД

Для создания БД в MySql необходимо:
  1. создать пользователя
  2. создать БД
  3. раздать ему права на пользование базой
Итак по порядку.
  1. Создаем пользователя:
    CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass1';
  2. Создаем БД:
    CREATE DATABASE IF NOT EXISTS mydb;
  3. Раздаем ему права:
    выборочно:
    GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user1'@'localhost';
    все права:
    GRANT ALL ON *.* TO 'user1'@'localhost';
    можно вообще раздать права с автоматическим созданием пользователя:
    GRANT ALL ON *.* TO 'user2'@'localhost' IDENTIFIED BY 'pass1';
    Раздавать права можно не только на пользование всеми базами но и на пользовыание только определенной. Едля етого следует указать имя БД. Например:
    GRANT ALL PRIVILEGES ON mydb . * TO 'user1'@'localhost';

Удаление пользователя:
DROP USER 'user1'@'localhost';

Удаление БД:
DROP DATABASE mydb