четверг, 25 октября 2012 г.

Mixin multiple JVM languages in the enterprise

It is interesting, has anybody tried to mixin multiple languages in the enterprise java project?

Scala, Closure, jRuby or others? 
Did it really help to speedup the the development and support?

пятница, 12 октября 2012 г.

Tomcat 6. Remove version information from error pages.

When Tomcat 6 encounters error like 404 it displays the error page which also reveals Tomcat version. It is bad in production, because some people can attack vulnerabilities in software. So, to make this task difficult it is better to mimic the version information in error page.

In your CATALINA_BASE\lib directory create dirs org/apache/catalina/util. Then, create the file ServerInfo.properties with the following properties:
server.info=Apache
server.number=1.2.3.4
server.built=18 nov 2012 23:59:59
 
Restart the Tomcat. Now Tomcat error pages won't contain version information.

Question to readers

Hi folks! I need your help. Does anybody of you knows the Java User Group in Moscow? I would like to join in to exchange the experience.

I know Google has video presentations from their java related meetings. Are there any meetings like this are held in Moscow?

вторник, 2 октября 2012 г.

понедельник, 1 октября 2012 г.

Spring и сервлеты. Инъектирование бинов.

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



Есть альтернативное решение. Spring содержит интерфейс
org.springframework.web.HttpRequestHandler. В этом интерфейсе есть метод handleRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response). Фактически это один в один метод service сервлета. Мы портируем наш сервлет так, что класс реализует данный интерфейс. Этот класс мы объявляем в spring. Далее в web.xml мы создаём описание сервлета. При этом имя сервлета должно совпадать с именем определённого бина spring, а класс сервлета - org.springframework.web.context.support.HttpRequestHandlerServlet.

Как результат - наш сервлет содержит инъектированные бины spring.

Аналогичное решение есть и для фильтров сервлета. Только в этом случае класс называется org.springframework.web.filter.DelegatingFilterProxy.