<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Lockdog&#039;s professional Blog</title>
	<atom:link href="http://lockdog.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lockdog.wordpress.com</link>
	<description>Java Software Development</description>
	<lastBuildDate>Thu, 14 Jul 2011 14:48:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='lockdog.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Lockdog&#039;s professional Blog</title>
		<link>http://lockdog.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://lockdog.wordpress.com/osd.xml" title="Lockdog&#039;s professional Blog" />
	<atom:link rel='hub' href='http://lockdog.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Java sort sublist</title>
		<link>http://lockdog.wordpress.com/2011/07/14/sort-sublist-java/</link>
		<comments>http://lockdog.wordpress.com/2011/07/14/sort-sublist-java/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 13:32:44 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[collections]]></category>
		<category><![CDATA[sorting]]></category>
		<category><![CDATA[sublist]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=96</guid>
		<description><![CDATA[Столкнулся недавно с задачей сортировки части листа. Т.е. необходимо отсортировать не весь лист, а с элемента под индексом x до элемента y. Внимательно прочитав javadoc метода subList (спасибо комментатору WerdnaR ) можно увидеть, что изменения в нём отражаются на list&#8217;е, поэтому отсортировать часть листа оказалось просто:     public void sortSublist(Comparator comparator, Integer firstIndex, Integer lastIndex, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=96&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Столкнулся недавно с задачей сортировки части листа. Т.е. необходимо отсортировать не весь лист, а с элемента под индексом x до элемента y.</p>
<p>Внимательно прочитав javadoc метода subList (спасибо комментатору WerdnaR ) можно увидеть, что изменения в нём отражаются на list&#8217;е, поэтому отсортировать часть листа оказалось просто:</p>
<p><em>    public void sortSublist(Comparator comparator, Integer firstIndex, Integer lastIndex, List list) {</em><br />
<em>        List subList = list.subList(firstIndex, lastIndex);</em><br />
<em>        Collections.sort(subList, comparator);</em><em></em><br />
<em>    }</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=96&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2011/07/14/sort-sublist-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>
	</item>
		<item>
		<title>JSP проблема кавычек</title>
		<link>http://lockdog.wordpress.com/2010/09/21/jsp-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d0%ba%d0%b0%d0%b2%d1%8b%d1%87%d0%b5%d0%ba/</link>
		<comments>http://lockdog.wordpress.com/2010/09/21/jsp-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d0%ba%d0%b0%d0%b2%d1%8b%d1%87%d0%b5%d0%ba/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 09:09:58 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[quotes]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=87</guid>
		<description><![CDATA[В JSP cуществует такая проблема, что если вы делаете такое вот поле &#60;input  id=&#8221;fullname&#8221; value=&#8217;${vendorFullName}&#8217; /&#62; И эта переменная vendorFullName содержит кавычки, то браузер съедает эти кавычки, выводит строку в этом поле до первой кавычки, а остальное &#8211; присоединяет к блоку тега input как атрибут. Существует вот такое вот коротенькое решение: &#60;%@ taglib prefix=&#8221;fn&#8221; uri=&#8221;http://java.sun.com/jsp/jstl/functions&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=87&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>В JSP cуществует такая проблема, что если вы делаете такое вот поле</p>
<p>&lt;input  id=&#8221;fullname&#8221; value=&#8217;${vendorFullName}&#8217; /&gt;</p>
<p>И эта переменная vendorFullName содержит кавычки, то браузер съедает эти кавычки, выводит строку в этом поле до первой кавычки, а остальное &#8211; присоединяет к блоку тега input как атрибут.</p>
<p>Существует вот такое вот коротенькое решение:</p>
<p>&lt;%@ taglib prefix=&#8221;fn&#8221; uri=&#8221;http://java.sun.com/jsp/jstl/functions&#8221; %&gt;</p>
<p>&#8230;</p>
<p>&lt;input  id=&#8221;fullname&#8221; value=&#8217;${fn:replace(vendorFullName,&#8221;&#8216;&#8221;,&#8221;\\&#8217;&#8221;)}&#8217; /&gt;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=87&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2010/09/21/jsp-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d0%ba%d0%b0%d0%b2%d1%8b%d1%87%d0%b5%d0%ba/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>
	</item>
		<item>
		<title>Собеседования</title>
		<link>http://lockdog.wordpress.com/2010/09/20/%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f/</link>
		<comments>http://lockdog.wordpress.com/2010/09/20/%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 18:37:26 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=81</guid>
		<description><![CDATA[Я тут решил не отказываться от собеседований вообще, и посетил их уже немало. Тем самым я тренирую навык успешного их прохождения, наблюдаю, что происходит на рынке, и, от некоторых интервьюеров получаю какие-то теоретические знания. Вот некоторые интересные моменты: - В одной из фирм, после того, как я прошёл рядом с большой open space комнатой, HR, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=81&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Я тут решил не отказываться от собеседований вообще, и посетил их уже немало.<br />
Тем самым я тренирую навык успешного их прохождения, наблюдаю, что происходит на рынке, и, от некоторых интервьюеров получаю какие-то теоретические знания.<br />
Вот некоторые интересные моменты:</p>
<p>- В одной из фирм, после того, как я прошёл рядом с большой open space комнатой, HR, зашедший после, сказал что я понравился всем девушкам, и они говорят, чтобы меня брали досрочно.<br />
- В одной из фирм роль HR-а выполнял весёлый дедусян лет под 60<br />
- В одной из фирм я после собеседования не знал название конторы, никто не спросил вообще ничего, и не рассказал ни капли. Т.е. HR вообще сразу меня перенаправил к девелоперу.<br />
- Одно собеседование я проходил рядом с больницей, прекрасным весенним деньком, как только забрал флюрографию, было очень жарко (собеседование было полностью телефонным)<br />
- Один раз мне сказали что я слишком слаб и отправили прямо во время собеседования.<br />
- Один раз я проходил собеседование утром сидя у себя дома и попивая чай, по Skype<br />
- Один раз я проходил собеседование исключительно на английском, и провалил его.<br />
- Один раз мне предложили такую же зарплату как и год назад, у них же на собеседовании.<br />
- Один раз во время интервью я встретил интервьюера с самого моего первого собеседования в жизни, на котором мы расстались через 5 минут, когда работодатель выяснил что я студент и хочу ходить на пары, второй раз я прошёл у него собсеседование.<br />
- Не раз интервьюеры знали моего текущего начальника, мою команду, мои проекты, и спрашивали, как там я.<br />
- Один раз мне не перезвонили после HR собеседования (до технического не дошло), хотя оно было предварительно намечено.<br />
- Один раз я сделал плохо тестовое задание. И один раз хорошо. И один раз не сделал по незнанию (когда не было опыта работы)<br />
- Один раз на работе дали пройти онлайн тесты за компьютером.<br />
- Один раз я забыл документ, и не смог пройти на территорию завода, где фирма снимал помещение, пришлось переназначать.<br />
- Один раз HR не спрашивая у меня выслала моё резюме другой фирме.<br />
- Один раз я был на собеседовании где вообще не было технического собеседования. Только разговор с PM и показ своего кода. Я провалил его.<br />
- Один раз давали написать задачку на компьютере онлайн, при этом следили за ходом написания по ту сторону Скайпа.<br />
- Один раз я был на собеседовании в фирме где кофе продаётся в компании в кофейных автоматах (платное)<br />
- Только один раз мне сказали решение и предлагаемую зп сразу, после пары минут совещания.<br />
- Много раз я встречал красивых HR, реже некрасивых.<br />
- В общем на собеседованиях все спрашивают примерно одно и то же.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=81&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2010/09/20/%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>
	</item>
		<item>
		<title>From FastReport to JasperReport</title>
		<link>http://lockdog.wordpress.com/2009/11/14/from-fastreport-to-jasperreport/</link>
		<comments>http://lockdog.wordpress.com/2009/11/14/from-fastreport-to-jasperreport/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 16:31:53 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[fast report]]></category>
		<category><![CDATA[jasper report]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[reports]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=67</guid>
		<description><![CDATA[Ставили мы как-то свой продукт (клиент к кредитному бюро) у заказчика (известный банк), и, почти в конце, обнаружилось, что у него нету серверов под windows, и политика безопасности не допускает таких серверов А наш клиент использовал для построения отчётов FastReport, сервер которого должен стоять исключительно на Windows машине. И пришлось быстро всё переделывать на чём-то [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=67&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ставили мы как-то свой продукт (клиент к кредитному бюро) у заказчика (известный банк), и, почти в конце, обнаружилось, что у него нету серверов под windows, и политика безопасности не допускает таких серверов <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  А наш клиент использовал для построения отчётов <a href="http://fast-report.com/">FastReport</a>, сервер которого должен стоять исключительно на Windows машине. И пришлось быстро всё переделывать на чём-то другом, выбор пал на open source java систему <a href="http://jasperforge.org/">JasperReports</a></p>
<ul>
<li>FastReport сервер ставится на отдельную машину, на нём устанавливается connection с БД, и дальше, всё отчёты запрашивают URL&#8217;ем к машине с FR. В параметрах передаются имя отчёта, и всякие необходимые для него параметры.</li>
<li>JasperReport хранит файлы с отчётами в файловой системе,  есть исходные файлы (*.jrxml), и есть уже скомпилированные (*.jasper). Компилировать можно как из кода, так и существующим UI-designer <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Отчёт может быть сформирован как pdf, html, xml, или output stream.</li>
</ul>
<p>Вот небольшой пример кода:</p>
<pre>
<code>
<i>
    private byte[] generateContent(Connection connection, ByteArrayOutputStream outputStream, Map parameters, String xmlPath, String pdfPath) throws JRException, SQLException {
        JasperReport jasperReport = JasperCompileManager.compileReport(xmlPath);
        connection = dataSource.getConnection();
        JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters, connection);

        JasperExportManager.exportReportToPdfStream(print, outputStream);
        JasperExportManager.exportReportToPdfFile(print, pdfPath + System.nanoTime());
        return outputStream.toByteArray();
    }
</i>
</code>
</pre>
<p>Здесь мы, сначала компилируем файл отчёта, потом генерируем отчёт, и, далее, сохраняем его в виде pdf файла, и пишем его в <strong>outputStream</strong><br />
Дополнительными параметрами могут быть, к примеру, дата, с какого по какое нас интересует отчёт.</p>
<pre>
<code>
<i>
  Map parameters = new HashMap();
            parameters.put("datefrom", dateFrom);
            parameters.put("dateto", dateTo);
</i>
</code>
</pre>
<p>А вот пример когда, как вывести pdf в байтах в JSF в виде странички <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre>
<code>
<i>
 public void getReport(String reportCode, Object action) throws ReportException {
        FacesContext ctx = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse();
        ServletOutputStream out = null;

        try {
          <strong> ...</strong>
            byte[] content = (byte[]) responseMessage.getBody().get();
            response.setContentType("application/pdf");
            out = response.getOutputStream();
            out.write(content);
            ctx.responseComplete();
        } catch (Exception e) {
            log.fatal(e, e);
            throw new ReportException(e.getMessage());
        } finally {
            try {
                if (out != null) {
                    out.flush();
                    out.close();
                }
            } catch (IOException e) {
                log.fatal(e, e);
            }
        }

</i>
</code>
</pre>
<p>А вот как сгенерировать контент для Excel:</p>
<p><code></p>
<pre>
package com.cs.stp.bl.ejb.util.report;

import com.cs.util.report.ReportException;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Resource;
import javax.ejb.Remote;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.sql.DataSource;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;

@Stateless
@Remote(JasperReport.class)
public class JasperReportBean implements JasperReport {

    @Resource(mappedName = "STP")
    private DataSource dataSource;

    @Resource
    private SessionContext context;

    private static final Logger log = LoggerFactory.getLogger(JasperReportBean.class);

    private static final String EXCEL_REPORT_XML_PATH = "stp_statistics.jrxml";
    private static final String EXCEL_REPORT_XLS_PATH = "reports/corporative_report.pdf";

    public byte[] getReport(String reportCode, Map params) throws ReportException {
        Connection connection = null;
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        byte[] content = new byte[0];

        try {
            String subReportDir = System.getProperty("report.dir");
            if (subReportDir == null) {
                throw new IllegalArgumentException("SubReport directory not defined!");
            }
            content = generateContent(connection, outputStream, params, subReportDir + EXCEL_REPORT_XML_PATH);
        } catch (Exception e) {
            throw new ReportException("Error during getting Corporative Jasper Report with id: " + reportCode, e);
        } finally {
            closeAll(connection, outputStream);
        }

        return content;
    }

    private byte[] generateContent(Connection connection, ByteArrayOutputStream outputStream, Map parameters, String xmlPath) throws JRException, SQLException {
        net.sf.jasperreports.engine.JasperReport jasperReport = JasperCompileManager.compileReport(xmlPath);
        connection = dataSource.getConnection();
        JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters, connection);

        JRXlsExporter exporter = new JRXlsExporter();
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
        exporter.exportReport();

        return outputStream.toByteArray();
    }

    private void closeAll(Connection connection, ByteArrayOutputStream outputStream) {

        try {
            outputStream.flush();
        } catch (IOException e) {
            log.error(e.getMessage());
        }
        try {
            outputStream.close();
        } catch (IOException e) {
            log.error(e.getMessage());
        }

        try {
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            log.error(e.getMessage());
        }
    }

}
</pre>
<p></code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=67&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2009/11/14/from-fastreport-to-jasperreport/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>
	</item>
		<item>
		<title>Websphere MQ 7 client code (sending messages)</title>
		<link>http://lockdog.wordpress.com/2009/11/13/websphere-mq-7-client-code-sending-messages/</link>
		<comments>http://lockdog.wordpress.com/2009/11/13/websphere-mq-7-client-code-sending-messages/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 10:37:07 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jms]]></category>
		<category><![CDATA[mq]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=73</guid>
		<description><![CDATA[import com.ibm.mq.*; /** * User: LockDog * Date: 13.11.2009 */ public class MessageSender { private static final String QMANAGER_NAME = "qm_node01"; private static final String QUEUE_NAME = "STP01"; private static final String MQ_HOST = "192.168.2.26"; private static final int MQ_PORT = 3000; private static final String MQ_CHANNEL = "SYSTEM.ADMIN.SVRCONN"; public static void main(String args[]) { [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=73&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><code></p>
<pre>
import com.ibm.mq.*;

/**
 * User: LockDog
 * Date: 13.11.2009
 */

public class MessageSender {

    private static final String QMANAGER_NAME = "qm_node01";
    private static final String QUEUE_NAME = "STP01";
    private static final String MQ_HOST = "192.168.2.26";
    private static final int MQ_PORT = 3000;
    private static final String MQ_CHANNEL = "SYSTEM.ADMIN.SVRCONN";

    public static void main(String args[]) {
        new MessageSender();
    }

    public MessageSender() {
        try {

            MQEnvironment.hostname = MQ_HOST;
            MQEnvironment.port = MQ_PORT;
            MQEnvironment.channel = MQ_CHANNEL;
            MQQueueManager qMgr1 = new MQQueueManager(QMANAGER_NAME);

            int sendOpt = MQC.MQOO_OUTPUT;
            MQQueue queue1 = qMgr1.accessQueue(QUEUE_NAME, sendOpt);
                MQMessage sendMsg = new MQMessage();
                sendMsg.format = MQC.MQFMT_STRING;
                sendMsg.writeString("Hello MQ, and P.S. I love you");
                MQPutMessageOptions sendMsgOpt = new MQPutMessageOptions();
                queue1.put(sendMsg, sendMsgOpt);
            queue1.close();
            qMgr1.disconnect();
        }
        catch (MQException ex) {
            System.out.println("A WebSphere MQ error occurred : Completion code " + ex.completionCode + " Reason code " + ex.reasonCode);
        }
        catch (java.io.IOException ex) {
            System.out.println("An error occurred whilst writing to the message buffer: " + ex);
        }
    }
}
</pre>
<p></code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/73/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=73&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2009/11/13/websphere-mq-7-client-code-sending-messages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>
	</item>
		<item>
		<title>Таймер, стартующий через определённое время после окончания работы</title>
		<link>http://lockdog.wordpress.com/2009/09/16/%d1%82%d0%b0%d0%b9%d0%bc%d0%b5%d1%80-%d1%81%d1%82%d0%b0%d1%80%d1%82%d1%83%d1%8e%d1%89%d0%b8%d0%b9-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d1%91%d0%bd%d0%bd%d0%be/</link>
		<comments>http://lockdog.wordpress.com/2009/09/16/%d1%82%d0%b0%d0%b9%d0%bc%d0%b5%d1%80-%d1%81%d1%82%d0%b0%d1%80%d1%82%d1%83%d1%8e%d1%89%d0%b8%d0%b9-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d1%91%d0%bd%d0%bd%d0%be/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 10:35:21 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[quartz]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=54</guid>
		<description><![CDATA[Здравствуйте, уважаемые программисты Сегодня я поведаю вам об одной маленькой и простой штуке. Все мы наверное пользуемся таймерами, но у стандартных таймеров в Quartz есть одна особенность &#8211; все они стартуют снова независимо от того, сколько продлилось выполнение прошлой работы, но зависимо только от того, когда работа стартовала прошлый раз. Иногда нужно, чтобы таймер вызывался [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=54&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте, уважаемые программисты <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Сегодня я поведаю вам об одной маленькой и простой штуке.</p>
<p>Все мы наверное пользуемся таймерами, но у стандартных таймеров в <strong>Quartz</strong> есть одна особенность &#8211; все они стартуют снова независимо от того, сколько продлилось выполнение прошлой работы, но зависимо только от того, когда работа стартовала прошлый раз.</p>
<p>Иногда нужно, чтобы таймер вызывался через определённое время после того, как он отработал, а не через определённое время после того, как он запускался прошлый раз.</p>
<p>Что для этого надо сделать? Взять <em>SimpleTrigger</em><br />
Зашедулить нужный job:<br />
<code>    </p>
<pre>

public void doTask(Notification lNotification, Date lDate) {

        try {
            scheduler = stdSchedulerFactory.getScheduler();

            trigger = new SimpleTrigger("BranchPingService", "BranchPingService");
            trigger.setRepeatInterval(TRIGGER_INTERVAL);
            trigger.setStartTime(new Date());

            scheduler.scheduleJob(getPingServiceJob(), trigger);
            scheduler.addGlobalJobListener(this);
            scheduler.start();

        } catch (Exception e) {
            logger.error(e, e);
        }
    	  logger.info("BranchPingService started good");
    }
</pre>
<p></code></p>
<p>Переопределить jobWasExecuted функцию. В этом примере мы смотрим, нужная ли это job (если, к примеру, другие job&#8217;ы должны работать стандартно) устанавливаем следующе время запуска <em>равным new Date() + нужный нам интервал</em>, и вызываем <em>rescheduleJob</em><br />
<code></p>
<pre>
    public void jobWasExecuted(JobExecutionContext jobExecutionContext, JobExecutionException jobExecutionException) {
        String jobName = jobExecutionContext.getJobDetail().getName();
        if (jobName.equals("BranchPingService")) {
            try {
                trigger.setJobName(jobName);
                trigger.setJobGroup(jobName);
                trigger.setStartTime(new Date(System.currentTimeMillis() + TRIGGER_INTERVAL));

                log.info("JOB with name: " + jobExecutionContext.getJobDetail().getName() + " rescheduled");
                scheduler.rescheduleJob(trigger.getName(), trigger.getGroup(), trigger);
            } catch (Exception e) {
                logger.error(e, e);
            }
        }
    }
</pre>
<p></code></p>
<p>И получаем что код выполняется через нужное нам время в зависимости от того, как долго длилось предыдущее выполнение.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=54&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2009/09/16/%d1%82%d0%b0%d0%b9%d0%bc%d0%b5%d1%80-%d1%81%d1%82%d0%b0%d1%80%d1%82%d1%83%d1%8e%d1%89%d0%b8%d0%b9-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d1%91%d0%bd%d0%bd%d0%be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>
	</item>
		<item>
		<title>Java на нетбуках</title>
		<link>http://lockdog.wordpress.com/2009/09/09/java-%d0%bd%d0%b0-%d0%bd%d0%b5%d1%82%d0%b1%d1%83%d0%ba%d0%b0%d1%85/</link>
		<comments>http://lockdog.wordpress.com/2009/09/09/java-%d0%bd%d0%b0-%d0%bd%d0%b5%d1%82%d0%b1%d1%83%d0%ba%d0%b0%d1%85/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 19:13:49 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[idea]]></category>
		<category><![CDATA[netbook]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=33</guid>
		<description><![CDATA[Добрый вечер уважаемые читатели Сегодня я поведаю вам о том, как это &#8211; программировать на java на нетбуке. Моя модель &#8211; Acer Aspire One D150-Bw. Цены на неё представлены здесь: (370$-460$) на территории Украины. Габариты: Высота, мм      29 Ширина, мм     249 Глубина, мм     170 Вес, кг     0.99 Т.е. мне эту штуку таскать с собой совсем [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=33&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Добрый вечер уважаемые читатели <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Сегодня я поведаю вам о том, как это &#8211; программировать на java на нетбуке. Моя модель &#8211; <strong>Acer Aspire One D150-Bw. </strong><a href="http://price.ua/index.php?action=catalog/index&amp;search_query=Acer%20Aspire%20One%20D150-Bw&amp;category_id=839&amp;sort_by=2&amp;sort_direction=asc" target="_blank">Цены на неё представлены здесь</a>:</p>
<p>(370$-460$) на территории Украины. Габариты:</p>
<p><em>Высота, мм      29<br />
Ширина, мм     249<br />
Глубина, мм     170<br />
Вес, кг     0.99</em><br />
Т.е. мне эту штуку таскать с собой совсем легко и ненапряжно. И Eclipse Gallileo и IDEA 8.1.3 грузятся менее чем пол минуты (это сама программа, плюс некоторое время, в зависмости от размера, занимает загрузка проекта. В Eclipse меньше, в IDEA больше).</p>
<p>JBoss 4.2.3 стартует за 50 секунд (при включенной IDEA)</p>
<p>Вот для примера несколько скриншотов:</p>
<p><span id="more-33"></span></p>
<div class="wp-caption aligncenter" style="width: 1034px"><img title="IDEA on netbook example screen" src="http://img7.imageshost.ru/imgs/090909/b7e5e5a973/9ebb1.jpg" alt="IDEA on netbook example screen" width="1024" height="600" /><p class="wp-caption-text">IDEA on netbook example screen</p></div>
<div class="wp-caption aligncenter" style="width: 1034px"><img title="IDEA on netbook example screen 2" src="http://img7.imageshost.ru/imgs/090909/dc986def92/fca85.jpg" alt="IDEA on netbook example screen 2" width="1024" height="600" /><p class="wp-caption-text">IDEA on netbook example screen 2</p></div>
<div class="wp-caption aligncenter" style="width: 1034px"><img title="Eclipse on netbook example screen" src="http://img7.imageshost.ru/imgs/090909/2f1917aebf/db38a.jpg" alt="Eclipse on netbook example screen" width="1024" height="600" /><p class="wp-caption-text">Eclipse on netbook example screen</p></div>
<div class="wp-caption aligncenter" style="width: 1034px"><img title="Eclipse on netbook example screen" src="http://img7.imageshost.ru/imgs/090909/e5299368e6/5b97c.jpg" alt="Eclipse on netbook example screen" width="1024" height="600" /><p class="wp-caption-text">Eclipse on netbook example screen</p></div>
<div class="wp-caption aligncenter" style="width: 1034px"><img title="Total commander on netbook example screen" src="http://img7.imageshost.ru/imgs/090909/55bcdb0e1a/55ab1.jpg" alt="Total commander on netbook example screen" width="1024" height="600" /><p class="wp-caption-text">Total commander on netbook example screen</p></div>
<p><!--more--></p>
<p>Большие проекты с кучей окон конечно будут не влазить и медленно работать, но какой-нибудь независимый модуль, вполне можно разрабатывать на таком нетбуке вне оффиса или вне дома (примерное время работы от батареи &#8211; 5-6 часов). Так же, если в фирме есть какой-нибудь relax-room, То с такой штукой можно уединяться, и кодить не в своём месте в оффисе, которое вам кто-то выделил, а в более приятном <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Хотя, конечно, там уже и есть сеть, и полноценный ноут круче в том контексте.</p>
<p>Но вот например диплом свой я буду делать где-нибудь не дома за столом. Крыши домов, природа и парки (пока тепло. <a title="Look at header :)" href="http://java.sun.com/javase/downloads/index.jsp" target="_blank">Посмотрите на header сайта:)</a>), кафешки, либо валяясь в постели, как Линус Торвальдс (который написал первую версию Linux у себя в спальне).</p>
<p>В общем, скорее тема нетбуки vs. ноутбуки &#8211; тема холиваров, но резюме моего поста &#8211; на нетбуке можно хорошо программировать на Java если проекты не сильно большие и громоздкие <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Недостатки в виде размеров и скорости &#8211; лично для меня &#8211; компенсируются преимуществами окружения. Которое может &#8220;вдохновлять&#8221; на работу, на свежие мысли.</p>
<p>Да, к нему можно подключать внешний моник, клавиатуру, увеличивать ОЗУ <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>За что я люблю профессию программиста &#8211; что нет сильной привязки к месту и времени работы, а есть лишь привязка к результату. Тем самым можно работать себе в удовольствие <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  В чём мой netbook и поможет мне.</p>
<p><strong>upd</strong> Вот ещё что &#8211; http://www.sotovik.ru/news/sun-qualcomm-zatochat-java-pod-netbooki.html</p>
<p>Но это не для моего нетбука <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=33&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2009/09/09/java-%d0%bd%d0%b0-%d0%bd%d0%b5%d1%82%d0%b1%d1%83%d0%ba%d0%b0%d1%85/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>

		<media:content url="http://img7.imageshost.ru/imgs/090909/b7e5e5a973/9ebb1.jpg" medium="image">
			<media:title type="html">IDEA on netbook example screen</media:title>
		</media:content>

		<media:content url="http://img7.imageshost.ru/imgs/090909/dc986def92/fca85.jpg" medium="image">
			<media:title type="html">IDEA on netbook example screen 2</media:title>
		</media:content>

		<media:content url="http://img7.imageshost.ru/imgs/090909/2f1917aebf/db38a.jpg" medium="image">
			<media:title type="html">Eclipse on netbook example screen</media:title>
		</media:content>

		<media:content url="http://img7.imageshost.ru/imgs/090909/e5299368e6/5b97c.jpg" medium="image">
			<media:title type="html">Eclipse on netbook example screen</media:title>
		</media:content>

		<media:content url="http://img7.imageshost.ru/imgs/090909/55bcdb0e1a/55ab1.jpg" medium="image">
			<media:title type="html">Total commander on netbook example screen</media:title>
		</media:content>
	</item>
		<item>
		<title>Java ресурсы</title>
		<link>http://lockdog.wordpress.com/2009/09/08/java-%d1%80%d0%b5%d1%81%d1%83%d1%80%d1%81%d1%8b/</link>
		<comments>http://lockdog.wordpress.com/2009/09/08/java-%d1%80%d0%b5%d1%81%d1%83%d1%80%d1%81%d1%8b/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 07:06:40 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=21</guid>
		<description><![CDATA[Доброе утро, коллеги! Сегодня, из своих закромов, для моих читателей, я достану ресурсы по Java, которые я ежедневно изучаю. Авось кому пригодится. Т.к. русский мне всё таки ближе,  то русскоязычных ресурсов больше Итак, русскоязычные ресурсы по Java: http://govnokod.ru/java/rss - Govnokod.ru — Java http://www.ibm.com/developerworks/ru &#8211; developerWorks Россия : Статьи , руководства Java technology http://j2w.blogspot.com &#8211; Developer [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=21&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Доброе утро, коллеги!</p>
<p>Сегодня, из своих закромов, для моих читателей, я достану ресурсы по Java, которые я ежедневно изучаю. Авось кому пригодится. Т.к. русский мне всё таки ближе,  то русскоязычных ресурсов больше <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Итак, русскоязычные ресурсы по Java:<br />
</strong></p>
<p>http://govnokod.ru/java/rss -<em> Govnokod.ru — Java</em><br />
http://www.ibm.com/developerworks/ru &#8211; <em>developerWorks Россия : Статьи , руководства Java technology</em><br />
http://j2w.blogspot.com &#8211; <em>Developer notes</em><br />
http://insightouts.blogspot.com &#8211; <em>Insightouts</em><br />
http://www.javable.com/rss_rus.rss &#8211; <em>IT-archiv</em><br />
http://itfreak.ru/feed &#8211; <em>ITFreak :: Независимый Взгляд на Информационные Технологии :: Сообщество IT-Энтузиастов&#8221;</em><br />
http://javatoday.ru &#8211; <em>Java Today</em><br />
http://nkoksharov.blogspot.com &#8211; <em>Java-Bulldozer</em><br />
http://www.javenue.info/feed &#8211; <em>Javenue</em><br />
http://blogs.sun.com/jonathan_ru &#8211; <em>Jonathan Schwartz&#8217;s Weblog</em><br />
http://www.linux.org.ru/section-rss.jsp?section=1&amp;group=26 &#8211; <em>Linux.org.ru: Новости &#8211; Java</em><br />
http://community.livejournal.com/ru_java -<em> ru.java</em><br />
http://community.livejournal.com/levin_matveev &#8211; <em>Scala, Java, JVM и другое</em><br />
http://blogs.sun.com/theaquarium_ru &#8211; <em>The Aquarium (ru)</em><br />
http://java.in.ua &#8211; <em>Блог о Java технологиях</em><br />
http://blogs.sun.com/theplanetarium_ru &#8211; <em>Планетарий</em><br />
http://blogs.sun.com/vmrobot &#8211; <em>Санкт-Петербургская группа тестирования JVM</em><br />
http://habrahabr.ru/rss/tag/java &#8211; <em>Хабрахабр:  Метки / java</em></p>
<p>http://javatalks.ru/ &#8211; <em>русскоязычный java форум, самый большой, из тех, которые я знаю</em></p>
<p><strong>И, несколько буржуйских:</strong><br />
http://developers.sun.com/rss/java.html &#8211; <em>Java Technology Headlines</em><br />
http://java.dzone.com &#8211; Javalobby &#8211; <em>The heart of the Java developer community</em><br />
http://www.javaworld.com -<em> Latest headlines from JavaWorld</em><br />
http://www.theserverside.com &#8211; <em>TheServerSide.com: News</em><br />
<strong>И не связанное с Java, но связанное с IT:</strong></p>
<p>http://www.developers.org.ua/feed -<em> developers.org.ua</em></p>
<p>http://feeds.feedburner.com/Maxkircom &#8211; <em>MAXKIR.com</em></p>
<p>http://feeds.feedburner.com/it4business -<em> www.it4business.ru</em></p>
<p>http://www.developers.org.ua/planet &#8211; <em>Планета разработчиков на ДОУ</em></p>
<p>http://habrahabr.ru/rss &#8211; <em>Хабрахабр</em></p>
<p>Ссылка для скачивания Export&#8217;ированного файла с этими ссылками для <strong>Google Reader</strong> &#8211; лучшего, на мой взгляд RSS-reader&#8217;a:</p>
<p>http://depositfiles.com/files/z4f29eo3o</p>
<p><em><br />
</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=21&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2009/09/08/java-%d1%80%d0%b5%d1%81%d1%83%d1%80%d1%81%d1%8b/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>
	</item>
		<item>
		<title>Websphere persistence problem</title>
		<link>http://lockdog.wordpress.com/2009/09/07/6/</link>
		<comments>http://lockdog.wordpress.com/2009/09/07/6/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 10:37:15 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[persistence]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=6</guid>
		<description><![CDATA[День начался с такой ошибки у заказчика [8/31/09 15:21:45:955 EEST]     FFDC Exception:javax.ejb.EJBException SourceId:com.ibm.ejs.container.EJSHome.createBeanO ProbeId:1023 Reporter:com.ibm.ejs.container.DummyHome@7afa7afa javax.ejb.EJBException: Injection failure; nested exception is: java.lang.IllegalStateException: EntityManagerFactory has not been created for PU : PuId=CBC Business Layer#SessionFacade.jar#CBC-Unit java.lang.IllegalStateException: EntityManagerFactory has not been created for PU : PuId=CBC Business Layer#SessionFacade.jar#CBC-Unit Проект там на hibernate, работал стабильно уже несколько месяцов. И [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=6&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>День начался с такой ошибки у заказчика <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p><em>[8/31/09 15:21:45:955 EEST]     FFDC Exception:javax.ejb.EJBException SourceId:com.ibm.ejs.container.EJSHome.createBeanO ProbeId:1023 Reporter:com.ibm.ejs.container.DummyHome@7afa7afa<br />
javax.ejb.EJBException: Injection failure; nested exception is: java.lang.IllegalStateException: EntityManagerFactory has not been created for PU : PuId=CBC Business Layer#SessionFacade.jar#CBC-Unit<br />
java.lang.IllegalStateException: EntityManagerFactory has not been created for PU : PuId=CBC Business Layer#SessionFacade.jar#CBC-Unit</em></p></blockquote>
<p>Проект там на hibernate, работал стабильно уже несколько месяцов. И тут &#8211; на тебе.</p>
<p>Перезагрузка сервака, как это иногда бывает, не помогла.</p>
<p>Смотрим выше<em> trace.log,</em> находим несколько связанных с этим сообщением логов, у которых префикс &#8211; символ E (в WebSphere это значит ошибка, error)</p>
<p>Находим самый верхний, связанный с нашим, и гуглим.</p>
<p>Всё найденное в интернете говорит о проблемах c classloader, о том, что есть какие-то дублирующие библиотеки, например jta.jar в проекте, и в Вебсфере.</p>
<p>Но проект у нас стоит уже несколько месяцев, состав библиотек не менялся <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Попутно нагуглил, что Websphere хранит подробные логи об ошибках, которые в основном логе представлены без stacktrace, в папке ffdc. Находим ошибку в основном логе, смотрим её время возникновения, в ffdc находим log файл с нужным временем, и, ура, видим caused by нужной нам ошибки, и подробный её log.</p>
<blockquote><p>Видим: <em>Caused by: java.lang.ClassCastException: com.ibm.ws.tx.jta.TranManagerSet incompatible with javax.transaction.TransactionManager</em></p></blockquote>
<p>Гуглим и эту ошибку, опять все говорят про classloader , и про опцию<em>. </em></p>
<blockquote><p><em>Class loader order</em></p>
<p><em> Classes loaded with parent class loader first<br />
Classes loaded with local class loader first (parent last)</em><em> </em></p></blockquote>
<p>Разные режими этой опции не помогают.<em><br />
</em></p>
<p>Вспоминаю что на том же серваке деплоятся наши коллеги (test mode, не production). Попробовал убрать, на время, для верности все их проекты и шаред либрарис, и перезагрузить сервак. Не помогает. Без други проектов и сторонних либ та же самая ошибка.</p>
<p>Вопрос к заказчикам, были ли какие-то обновления на сервер за последнее время ответа не получил.</p>
<p>Хм. Что же делать?</p>
<p>Полез в файл <strong><em>persistence.xml</em></strong></p>
<p>Нашёл такую строку:<strong><em><br />
</em></strong></p>
<blockquote><p><em>&lt;property name=&#8221;hibernate.transaction.manager_lookup_class&#8221;<br />
value=&#8221;org.hibernate.transaction.WebSphereTransactionManagerLookup&#8221;/&gt;</em></p></blockquote>
<p>Думаю, проблема где-то здесь.</p>
<p>В IDEA нажимаю на подсказку, находясь в файле (eclipse так не умеет <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), какие ещё есть классы в пакете <em>org.hibernate.transaction<br />
</em></p>
<p>Ура, есть ещё один <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Вся надежда на него. Комментирую старый, ставлю новый:</p>
<blockquote><p><em>&lt;property name=&#8221;hibernate.transaction.manager_lookup_class&#8221;<br />
value=&#8221;org.hibernate.transaction.WebSphereExtendedJTATransactionLookup&#8221;/&gt;</em></p></blockquote>
<p>Запускаю &#8211; вуаля &#8211; всё работает. Ни на одном форуме про это решение не было. Я первый <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Возвращаю на место библиотеки и проекты коллег, перегружаю ещё раз.</p>
<p>Ещё один минус в пользу вебсферы &#8211; commercial.</p>
<p>У JBoss есть форум, где куча проблем уже решена, и люди много помогают друг другу <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>В вебсфере же форум не такой живой, и обращение в саппорт &#8211; платное, в итоге тратишь больше времени на исправление каких-либо нестандартных проблем.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=6&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2009/09/07/6/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world :)</title>
		<link>http://lockdog.wordpress.com/2009/09/07/hello-world-2/</link>
		<comments>http://lockdog.wordpress.com/2009/09/07/hello-world-2/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 09:41:43 +0000</pubDate>
		<dc:creator>Eugene Kisly</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://lockdog.wordpress.com/?p=3</guid>
		<description><![CDATA[Привет, меня зовут Женя, в данный момент я работаю  Software Java Developer. Поскольку моя профессия мне нравится &#8211; я решил завести профессиональный блог, в котором буду писать разное, касающееся разработки на Java, и всё, что с этим связано. Добро пожаловать<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=3&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Привет, меня зовут Женя, в данный момент я работаю  Software Java Developer.</p>
<p>Поскольку моя профессия мне нравится &#8211; я решил завести профессиональный блог, в котором буду писать разное, касающееся разработки на Java, и всё, что с этим связано.</p>
<p>Добро пожаловать <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.developers.org.ua"><img src="http://www.developers.org.ua/static/images/planet/80x15_black.gif" border="0" alt="Участник планеты Developers.org.ua" width="80" height="15" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lockdog.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lockdog.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lockdog.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lockdog.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lockdog.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lockdog.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lockdog.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lockdog.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lockdog.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lockdog.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lockdog.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lockdog.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lockdog.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lockdog.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lockdog.wordpress.com&amp;blog=9363193&amp;post=3&amp;subd=lockdog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lockdog.wordpress.com/2009/09/07/hello-world-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e98c84965e3d85a719f7f3ec3ad4481b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">LockDog</media:title>
		</media:content>

		<media:content url="http://www.developers.org.ua/static/images/planet/80x15_black.gif" medium="image">
			<media:title type="html">Участник планеты Developers.org.ua</media:title>
		</media:content>
	</item>
	</channel>
</rss>
