Arquivos

Posts Tagged ‘WebSphere’

Criando uma aplicação Java conversando com Filas MQ

Galera, achei uma fonte muito legal sobre o tema Java e WebSphere MQ, segue ai:

http://www.angusyoung.org/2011/10/23/tutorial-sobre-websphere-mq/

Quartz + Tomcat ou Qualquer Servidor de App

Este é um passo a passo de como criar uma aplicação Web que tem uma tarefa agendada. Por exemplo, vamos supor que você tem uma aplicação Web, que eventualmente deve efetuar uma limpeza de dados em uma base. Você pode utilizar o quartz para isso (outra alternativa seria Ejb timer). Vamos la:

1- Baixe o Quartz (http://www.quartz-scheduler.org/)
2- Crie um projeto Web Dinâmico no Eclipse e nas dependencias do mesmo, coloque todas as bibliotecas do Quartz baixadas no passo anterior.
3- Crie as classes abaixo:
3.1- Tarefa

package com.br.infoserver.quartz;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

/**
 * Esta classe demonstra uma tarefa que ira ser invocada pelo Quartz
 * Tem que implementar a interface Job do Quartz
 * @author julianom
 */
public class TarefaExemplo implements Job{
	/**
	 * Metodo que é executado quando a tarefa é invocada
	 */
	public void execute(JobExecutionContext context)
	throws JobExecutionException {
		// aqui vai a lógica da tarefa a ser chamada,
		// por exemplo, fazer um select no banco e enviar algum dado para uma fila MQ
		// Neste exemplo, vai somente imprimir no console a data de hoje no intervalo de 5 segundos
		SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy – hh:mm:ss");
		System.err.println("Rodou: " + dateFormat.format( new Date() ));
	}
}

3.2- Agendador, esta classe será invocada por um servlet na inicialização da aplicação WEB

package com.br.infoserver.quartz;

import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

/**
 * Esta é a classe que deve ser invocada e irá disparar a tarefa nos momentos
 * determinados
 *
 * @author julianom
 *
 */
public class Agendador {

	public static void inicia() throws Exception {
		// Detalhes da tarefa
		JobDetail job = JobBuilder.newJob(TarefaExemplo.class).withIdentity(
				"tarefaAloMundo", "group1").build();
		// Gatilho - ou seja, quando irá chamar, neste caso, a cada 5 segundos
		Trigger trigger = TriggerBuilder.newTrigger().withIdentity(
				"gatilhoAloMundo", "group1").withSchedule(
				CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build();

		// Agenda e voa lá!
		Scheduler scheduler = new StdSchedulerFactory().getScheduler();
		scheduler.start();
		scheduler.scheduleJob(job, trigger);

	}

}

4- Crie um servlet, este Servlet deverá ser configurado para ser carregado na inicialização da aplicação, eu fiz isso utilizando annotation, dependendo de sua versão de Java, Apache, WebSphere, etc… vai ter que tirar do Servlet e colocar no arquivo web.xml

package com.br.infoserver.quartz.servlet;

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

import com.br.infoserver.quartz.Agendador;

/**
 * Servlet implementation class QuartzServlet
 */
@WebServlet(
		urlPatterns = { "/QuartzServlet" },
		initParams = {
				@WebInitParam(name = "load-on-startup", value = "2")
		})
public class QuartzServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public QuartzServlet() {
        super();
		try {
			Agendador.inicia();
		} catch (Exception e) {
			e.printStackTrace();
		}
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}

Pronto, simples e fácil. Basta efetuar o deploy de sua aplicação em seu servidor, e verá que neste exemplo ele ficará escrevendo a data no SystemOut do mesmo!

Enjoy!

Lançado livro grátis sobre WebSphere CE – Sou um dos autores.

Acabou de sair do forno o livro “Getting started with WAS CE”. Sou um dos editores do mesmo, responsável pelos capítulos de desenvolvimento Java e Instalação.

O livro é introdutório sobre o WebSphere Application Server Community Edition, que é a edição grátis, tanto para uso pessoal quanto para deploy de aplicativos profissionais.

Recomendo conhecerem o produto e lerem o livro, é grátis. Uma contribuição simples para a comunidade.

O link para download é: https://www.ibm.com/developerworks/wikis/display/db2oncampus/FREE+ebook+-+Getting+started+with+WAS+CE

Enjoy!

CategoriasWebSphere Tags:, ,

IBM vai encerrar o suporte ao Websphere 6.0(WAS)

A IBM vai encerrar o suporte ao WebSphere Application Server versão 6.0 em 30 de setembro de 2010.

Fonte: http://www-01.ibm.com/software/support/lifecycle/index_w.html

Para os usuário insteressados em migração, pode-se escolher o WAS 7.0 ou o 6.1. Eu particularmente sugiro o 7 pois o mesmo já suporta Java 6.

Os sites para informações sobre requisitos de sistema são:

WebSphere Application Server Deployment Manager V7.0
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg27012453
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg27012474
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg27012473

WebSphere Application Server Deployment Manager V6.1:
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg27007686
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg27007689
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg27007688

Enjoy!

Introdução a Web Services

Eu e meu amigo José Damico escrevemos um artigo para a Java Magazine 75 intitulado: Introdução a Web Services.

O artigo começa introduzindo o leitor na atual conjuntura de integração e reusabilidade nas empresas e onde os Web Services se encaixam. Passamos pela anatomia básica de um Web Service explicando o lado cliente e servidor, e como a comunicação ocorre utilizando o protocolo SOAP. Explicados os conceitos, partimos para o desenvolvimento de um Web Service simples que recebe um parâmetro e retorna o mesmo concatenando-o com “alo”. Para finalizar, desenvolvemos um cliente que irá consumir este serviço.

Muito obrigado ao Eduardo Espinola pelo convite para participar do time de articulista da JM e as demais pessoas que colaboraram para a escrita do mesmo, espero que seja útil para a comunidade!

Uma breve introdução a “Service Integration Bus”

Estava pesquisando sobre Service Integration Bus, e encontrei um blog que trata somente do assunto. Muito bom, recomendado.

Vejam em http://webspheremessaging.blogspot.com/.

Enjoy

Criando um datasource no WebSphere utilizando o RAD/RSA 7

Criei um breve tutorial sobre como criar um datasource no WebSphere Application Server (WAS) utilizando o Rational Software Architect (RSA) ou o Rational Application Developer (RAD) para conectar em uma base de dados DB2.

Passo pela criação do provedor JDBC (JDBC Provider) e do Mecanismo de autenticação

Finalmente mostro como chamar o datasource na classe Java.

Download: Tutorial em PDF

Enjoy.

Boas práticas para o WebSphere

Encontrei um documento muito bom com uma lista de boas práticas para serem implementadas em aplicações que utilizam WebSphere Application server.

É interessante notar que boa parte delas podem ser implementadas em outros servidores de aplicação.

Baixe aqui: http://www-01.ibm.com/software/webservers/appserv/ws_bestpractices.pdf

Enjoy!

Configurando WAS CE no Eclipse

Criei um pequeno tutorial sobre como configurar o Websphere CE no Eclipse.

Basicamente criamos o novo server e criamos uma aplicação Web dinânima para testar o mesmo!

Para baixar o tutorial, o link é este: http://dcon.com.br/jd.comment/juliano/fema/config_WASCE_Eclipse.odt

Se quiser o PDF, aqui está: http://dcon.com.br/jd.comment/juliano/fema/config_WASCE_Eclipse.pdf

Enjoy!

CategoriasJAVA, WebSphere Tags:, ,

Utilizando o Starting Weight no WebSphere

Muitas vezes vamos fazer o deploy de um novo release de uma aplicação em um servidor de aplicações, e para fazer isso, simplesmente sobrescrevemos a aplicação anterior.

Poucas pessoas sabem que o WebSphere tem um recurso que nos permite instalar a nova versão da aplicação sem remover a versão antiga.

O recurso é chamado Starting Weight, ou seja, peso de inicialização.

Eu sugiro uma boa prática em nossos processos de deploy: Ao fazer o deploy de um novo release para sua aplicação, você deve dar um nome diferente a ela, por exemplo: “Aplicacao_X_release_2″, e setar o stating weight para 1, como na figura:

Utilizando o Starting Weight no WebSphere

Após isso, devemos ir no release anterior, e setar o starting weight para algo maior que um.

Assim, reiniciamos o servidor de aplicação, e quando ele iniciar, vai levantar a aplicação com o menor peso, pois ao tentar levantar a aplicação com o peso maior, o servidor vai verificar que o context root já está em uso por outra aplicação.

Esta é uma ótima prática para evitarmos operações de rollback demoradas. Se tivermos algum problema no novo release, podemos simplesmente fazer a troca de pesos, ou seja, colocar 1 no release mais antigo e 100 no novo release, assim, reiniciar o servidor de aplicação, e o mesmo, iniciará o antigo release, sem problemas!

Enjoy!

CategoriasJAVA, WebSphere Tags:,
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 127 outros seguidores