JBoss Seam Remoting e Email assincrono

8 respostas
tubiluki

Tenho uma aplicação que a pagina web chama um método remote usando o Remoting do Seam e envia um email.

O método que envia o email está anotado com @Asynchronous.

Quando eu tento executar :

java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.application.ApplicationFactory

Mas quando eu uso o mesmo método de envio de email sem usar o remoting funciona perfeitamente.

Alguém tem alguma idéia?

8 Respostas

khaleo

Estou passando exatamente por esse mesmo problema, será que alguem pode ajudar??

tubiluki

Qual a versão do SEAM que vc ta usando…

acho que tinha problema com versao antiga… 2.0.2 depois disso foi arrumado…

khaleo

Pior q é essa versão mesmo (2.0.2)…
Será que tem como contornar esse problema?

tubiluki

Entao… na 2.1… para frente já não tem mais esse problema…

o que eu fiz na epoca foi fazer uma gambis nervosa…

o remoting chamava um componente do seam… que fazia um post para chamar um outro component… que realizava a tarefa…

acho que era mais ou menos isso…

educorso

Olá, preciso dar manutenção ao um sistema que usa o Seam para realizar envio de email. Acontece que se der qualquer erro na hora de enviar email, o sistema fica parado ali. Queria algo que funcionasse como uma thread, que fizesse o envio sem prejudicar o resto do processo, dando erro ou nao.
*OBS.: n preciso saber se o email foi, ou deu erro!

MBean

...
              try {
			Integer codigo = ParametroSite.getParametroInteger("NUCONTAEMAIL");
		
			ContaEmailRG contaEmailRG = new ContaEmailRG();
		
			if (codigo != null)
				contaEmail = contaEmailRG.findContaemailByCodigo(codigo, null);
		
			if (contaEmail != null)
                                renderer.render("/pages/email/confirmacaoCompra.xhtml");
				
		} catch (Exception e) {
			LogSistema.RegistraLog(this.getClass(), LogSistema.ERROR, "(efetuarCompra): " + e.getMessage());
		}

arquivo.xhtml (email)

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<m:message xmlns="http://www.w3.org/1999/xhtml"
		   xmlns:m="http://jboss.com/products/seam/mail"
		   xmlns:ui="http://java.sun.com/jsf/facelets"
		   xmlns:h="http://java.sun.com/jsf/html">

<m:from name="#{confirmacao.contaEmail.nmfromname}" address="#{confirmacao.contaEmail.nmfromaddress}" />
<m:to>
	<h:outputText value="#{confirmacao.compra.cliente.nmemail}"/>
</m:to>

<m:subject>Pedido efetuado</m:subject>

<m:body>
	<html xmlns='http://www.w3.org/1999/xhtml'>

.
.
.

Aguardo idéias, pois nunca trabalhei com Seam, e não achei nada parecido no forum.

Obrigado

tubiluki

pode usar o esquema de processamento assincrono.

educorso

Era isso que eu precisava, mas como fazer isso???

É só colocar a anotação @Asynchronous no método de envio???

tubiluki

isso… só checar a documentação.

http://docs.jboss.org/seam/2.2.1.CR1/reference/en-US/html_single/#d0e21547

Criado 6 de outubro de 2008
Ultima resposta 16 de jul. de 2010
Respostas 8
Participantes 3