RESOLVIDO: Probelama com @In Seam

Galera to começando com o seam agora, to pegando um projeto do meio q utiliza este framework…

Minha dúvida eh a seguinte:

Criei meu javabean, interface, implementação da interface, DAO, tudo com anotação @name blz…

aí qndo chego na tela e crio o meu bean utilizo uma instanci de uma implementação da minha interface no entanto da erro ao utilizar a tag @In no atributo do bean… Por alguma razão ele não cria a instancia e dá nullpointer.

segue a descrição do erro

8:22:43,587 SEVERE [viewhandler] Error Rendering View[/pages/negociacao/cotacaoEditarSubgrupo.xhtml] org.jboss.seam.InstantiationException: Could not instantiate Seam component: tipoCapitalCotizadorBean at org.jboss.seam.Component.newInstance(Component.java:2170) at org.jboss.seam.Component.getInstance(Component.java:2024) at org.jboss.seam.Component.getInstance(Component.java:1986) at org.jboss.seam.Component.getInstance(Component.java:1980) at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55) at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50) at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:148) at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:51) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72) at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44) at org.jboss.el.parser.AstValue.getValue(AstValue.java:63) at org.jboss.el.parser.AstEqual.getValue(AstEqual.java:21) at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:390) at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:271) at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258) at org.richfaces.renderkit.html.PanelBarRenderer.doEncodeChildren(PanelBarRenderer.java:168) at org.richfaces.renderkit.html.PanelBarRenderer.doEncodeChildren(PanelBarRenderer.java:163) at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:120) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277) at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258) at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:220) at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:215) at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:120) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.render.Renderer.encodeChildren(Renderer.java:148) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:295) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:373) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:500) at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at br.com.mapfre.vida.aplicacao.cotizador.TipoCapitalCotizadorBean.<init>(TipoCapitalCotizadorBean.java:34) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.jboss.seam.Component.instantiateJavaBean(Component.java:1441) at org.jboss.seam.Component.instantiate(Component.java:1362) at org.jboss.seam.Component.newInstance(Component.java:2148) ... 84 more 18:22:43,587 SEVERE [lifecycle] JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /pages/negociacao/cotacaoEditarSubgrupo.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@652226] 18:22:43,603 ERROR [MapfreExceptions] ------- Erro codigo: ERAPP012013020618224338085 ------- java.lang.NullPointerException at br.com.mapfre.vida.aplicacao.cotizador.TipoCapitalCotizadorBean.<init>(TipoCapitalCotizadorBean.java:34) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.jboss.seam.Component.instantiateJavaBean(Component.java:1441) at org.jboss.seam.Component.instantiate(Component.java:1362) at org.jboss.seam.Component.newInstance(Component.java:2148) at org.jboss.seam.Component.getInstance(Component.java:2024) at org.jboss.seam.Component.getInstance(Component.java:1986) at org.jboss.seam.Component.getInstance(Component.java:1980) at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55) at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50) at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:148) at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:51) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72) at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44) at org.jboss.el.parser.AstValue.getValue(AstValue.java:63) at org.jboss.el.parser.AstEqual.getValue(AstEqual.java:21) at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:390) at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:271) at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258) at org.richfaces.renderkit.html.PanelBarRenderer.doEncodeChildren(PanelBarRenderer.java:168) at org.richfaces.renderkit.html.PanelBarRenderer.doEncodeChildren(PanelBarRenderer.java:163) at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:120) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277) at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:258) at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:220) at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:215) at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:120) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.render.Renderer.encodeChildren(Renderer.java:148) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:295) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:373) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:500) at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451) at java.lang.Thread.run(Unknown Source)

Alguém pode me ajudar… poq ele não ta criando a bendita instancia??

Desde já obrigado!!!

Se tens certeza de que a configuração do projeto está correta para utilização do seam, algo parecido com o código a seguir deve funcionar.

[code]@Name(“classeB”)
@Scope(ScopeType.CONVERSATION)
public class ClasseB implements Serializable{ … }

@Name(“classeA”)
@Scope(ScopeType.CONVERSATION)
public class ClasseA implements Serializable{
@In(create=true, value = “classeB”)
private ClasseB classeB;
.
.
.
}[/code]

Caso não funcione, poste como está fazendo em suas classes.

Caro to exceto pelo atributo value o meu ta igualzinho, nao to colocando o value pois pelo que entendi quando não se coloca value o seam procura pelo nome da instancia certo? Como disse, peguei o projeto no meio entao tive que criar algumas coisas do zero seguindo o padrão do projeto, criei tudo me baseando na forma das classes e interfaces que já existiam… O engraçado que com o que ja existia as anotações funcionam com o que eu criei não funciona!

Segue um exemplo do que criei:

Javabean

@Entity @Table( name = "smv_cotizador_cotacao" ) @Name( "cotacaoCotizador" ) @Scope( ScopeType.CONVERSATION ) public class CotacaoCotizador extends AbstractEntidade { private static final long serialVersionUID = 1L ; @Id @Column( name = "cd_cotacao", columnDefinition = "number(19)" ) private long cdCotacao ;

interface Local

[code]@Local
public interface CotacaoCotizadorServiceLocal extends AbstractServiceInterface
{

String SERVICE_NAME = "cotacaoCotizadorService";

}][/code]

A interface que essa interface que eu criei extend

[code]public interface AbstractServiceInterface {

/**
 * Método responsável por recuperar um objeto do tipo entidade.
 * 
 * @param id
 *            String com id
 * @return entidade
 */
T recuperarPorId(Long id);[/code]

Implementação da interface

[code]@Name(CotacaoCotizadorServiceLocal.SERVICE_NAME)
@Stateless
public class CotacaoCotizadorService extends AbstractServiceImpl implements
CotacaoCotizadorServiceLocal
{

}[/code]

A classe que minha implementação extend

[code]public abstract class AbstractServiceImpl
implements AbstractServiceInterface {

private final Class<? extends AbstractEntidade> classePersistente;

@In(create = true)
private DaoFactoryLocal daoFactory;

/**
 * Construtor da classe abstrata de serviços.
 */
@SuppressWarnings("unchecked")
public AbstractServiceImpl() {
	classePersistente = (Class<T>) ReflectionUtil.getParameterizedType(
			getClass()).getActualTypeArguments()[0];
}

/**
 * {@inheritDoc}
 */
@SuppressWarnings("unchecked")
protected final AbstractDao<T> getDao() {
	return daoFactory.getDAO(classePersistente);
}

/**
 * {@inheritDoc}
 */
public final T recuperarPorId(Long id) {
	return getDao().recuperarPorId(id);
}[/code]

O meu DAO

public class CotacaoCotizadorDao extends AbstractDao<CotacaoCotizador> { }

O dao que o dao meu extend

[code]public abstract class AbstractDao {

private static final long serialVersionUID = 1L;

private static final Integer QTD_ENTITY_PERSISTED_PER_FLUSH_CLEAR_ON_SAVE_LIST = 50;

private static Map<String, String> mapaCacheNamedQuery = new HashMap<String, String>();

//public static final Integer MAXRESULTS = 50;

private EntityManager entityManager;

private Class<T> persistenceClazz = null;

@SuppressWarnings(“unchecked”)
public final T recuperarPorId(Long id) {
return (T) DaoUtil.recuperarPorId(entityManager, getPersistenceClass(), id);
}[/code]

Obrigado mais uma vez!!!

Acredito que a entidade CotacaoCotizador não necessite ser mapeada com @Name e @Scope, pois ela estará no disponível no escopo do teu MB (acredito que seja a TipoCapitalCotizadorBean).
Você também pode adicionar o nome da interface no mapeamento do teu serviço:

@LocalBinding(jndiBinding = CotacaoCotizadorServiceLocal.SERVICE_NAME) @Name(CotacaoCotizadorServiceLocal.SERVICE_NAME) @Stateless public class CotacaoCotizadorService extends AbstractServiceImpl<CotacaoCotizador> implements CotacaoCotizadorServiceLocal { ... }

Pelo log, o erro ocorre ao criar o TipoCapitalCotizadorBean, como está esta classe?

meu bean na verdade mudou, mas o erro eh o mesmo, rsrs…


@Name( "assistenciaCotizadorBean" )
@Scope( ScopeType.EVENT )
public class AssistenciaCotizadorBean
{
	private List<Assistencia>	    assistencias ;
	private List<Assistencia>	    assistenciasSelecionadas ;
	@In( create = true, value = "assistenciaService" )
	private AssistenciaServiceLocal	assistenciaService ;

	public AssistenciaCotizadorBean( )
	{
		
		assistencias = assistenciaService.recuperarTodos( ) ; //AGORA O ERRO OCORRE NESTA LINHA, POIS ASSISTENCIASERVICE ESTÁ NULL, OU SEJA NÃO CRIOU INSTANCIA
		assistenciasSelecionadas = new ArrayList<Assistencia>( ) ;
	}

	public List<Assistencia> getAssistencias( )
	{
		return assistencias ;
	}

	public void setAssistencias( List<Assistencia> assistencias )
	{
		this.assistencias = assistencias ;
	}

	public List<Assistencia> getAssistenciasSelecionadas( )
	{
		return assistenciasSelecionadas ;
	}

	public void setAssistenciasSelecionadas(
	        List<Assistencia> assistenciasSelecionadas )
	{
		this.assistenciasSelecionadas = assistenciasSelecionadas ;
	}
}

Estranho poq nem fazendo assim ele funciona:

public AssistenciaCotizadorBean( ) { assistenciaService = (AssistenciaServiceLocal)Component .getInstance("assistenciaServie", true, true); assistencias = assistenciaService.recuperarTodos( ) ; assistenciasSelecionadas = new ArrayList<Assistencia>( ) ; }

Cara, se o erro continua o mesmo do primeiro post, posta o código da tua classe TipoCapitalCotizadorBean pra gente ver…
Pois segundo o log, o erro está nessa classe…

Então, mas essa classe agora está correta, pois não estou mais precisando do in poq mudei o mapeamento das telas…

Mas vou tentar reproduzir como ela estava…

@Name( "tipoCapitalCotizadorBean" )
@Scope( ScopeType.CONVERSATION )
public class TipoCapitalCotizadorBean
{
	private String	tipoCapital ;
	private boolean	fgMostraUniforme	 = false ;
	private boolean	fgMostraMultiplo	 = false ;
	private boolean	fgMostraBarraCapital = true ;
	private VersaoCadastralCotizador versaoCadastralCotizador;
        @In(create=true)
        private AssistenciaServiceLocal assistenciaService;
        private List<Assistencia> assistencias;
     
        public TipoCapitalCotizadorBean( )
	{
                assistencias = assistenciaService.recuperarTodos(); //NESSA LINHA QUE DAVA O ERRO, POQ O ASSISTENCIASERVICE ESTAVA NULO, OU SEJA, NÃO CRIOU A INSTANCIA
		versaoCadastralCotizador = new VersaoCadastralCotizador( );
		tipoCapital = new String( ) ;
	}

        //daki pra baixo era os gets e sets
        

Imagino que sua interface e a classe que implementa ela estejam mapeadas dessa forma:

[code]@Local
public interface AssistenciaServiceLocal

@Stateless
@Name(“assistenciaService”)
public class assistenciaService implements AssistenciaServiceLocal[/code]

Uma dica pra ver os componentes criados pelo SEAM é visualizar a página de debug dele.
http://localhost:8080/nomeSistema/debug.seam

Ali na opção Application Context tu pode ver se o assistenciaService está registrado como um seam component.
Se tiver, ele deve ser injetado pelos beans.

Tu também pode colocar a anotação @AutoCreate no assistenciaService. A ideia é a mesma que o create = true, mas seria mais uma alternativa para testar.

abraços,

Exato, minha interface e a implementação estão exatamente dessa forma!!!

Olhei no application Context e tudo que eu criei está lá, services, beans, etc!!!

Vou tentar mapear dessa forma que você flw!!!

– Tentei com o mapeamento @autocreate e não rolou tmb!!! Poxa to ficando sem opções!!!

Obrigado pela resposta!

Acho que descobri seu problema cara…

Analisando melhor seu código, vi que você chama o teu assitenciaService dentro do construtor do seu Bean. Nesse caso, o Seam ainda não injetou o valor nos seus componentes (o construtor é executado antes das injeções).

Uma solução para o seu caso, pode ser anotar um método com o @Create ao invés de usar o construtor. Essa anotação vai ser executado quando o Seam instanciar esse componente (e já vai ter injetado todas suas dependências).

Abraços,

[quote=edubiss]Acho que descobri seu problema cara…

Analisando melhor seu código, vi que você chama o teu assitenciaService dentro do construtor do seu Bean. Nesse caso, o Seam ainda não injetou o valor nos seus componentes (o construtor é executado antes das injeções).

Uma solução para o seu caso, pode ser anotar um método com o @Create ao invés de usar o construtor. Essa anotação vai ser executado quando o Seam instanciar esse componente (e já vai ter injetado todas suas dependências).

Abraços,[/quote]

Cara meus parabéns!!! Já tava desistindo!!! hehehe

Funciounou perfeitamente!!! Agora só fiquei com duas dúvidas…

Antes, em algumas tentativas, eu tentei fazer a instancia na mão dentro do construtor, tipo

   (AssistenciaService)Component.getInstance("assistenciaService", ScopeType.CONVERSATION, true, true);

E também não rolou! sabe se tem alguma causa especifica??? ou é pelo que voccê disse do seam não criar as instancias?

Outra coisa, depois que funcionou dessa forma que você falou eu criei o método e tentei chamá-lo dentro do construtor, mas não havia instancia do objeto mesmo!

Não entendi muito bem essa do @Create no método, poderia explicar melhor???

Mais uma vez muitissimo obrigado mesmo!! Já Me ajudou muito!!!

Sim, é a mesma ideia. Se o objeto injetado pelo @In não está instanciado, o getInstance() também não vai ter. Eles vão te retornar o mesmo componente.

[quote]
Outra coisa, depois que funcionou dessa forma que você falou eu criei o método e tentei chamá-lo dentro do construtor, mas não havia instancia do objeto mesmo! [/quote]
Sim, você fez a mesma coisa só que chamando um método de dentro do construtor.
O que tens que entender é que quando tu chama o Bean (de uma tela ou de outro bean dentro de uma conversação) o Seam vai criar esse Bean (se ele não estiver criado ainda) e vai executar o construtor do Bean primeiro e depois vai injetar os seam components (@In ou getInstance()). No caso, tu estava tentando acessar um atributo que não foi populado pelo Seam ainda.

[quote]
Não entendi muito bem essa do @Create no método, poderia explicar melhor??? [/quote]
Dá uma olhada na documentação http://docs.jboss.org/seam/1.2.1.GA/reference/en/html/annotations.html
Mas basicamente, após o Seam criar o componente, ele vai chamar o método anotado com @Create. A vantagem que dai os atributos já vão estar injetados pelo Seam pois esse método é chamado após a criação do componente e não antes como é o caso do construtor da classe.

Abraços,

Entendi Cara!!! Bou ver aki então como vou fazer sem poder usar o construtor!!!

Mais uma vez o meu muito obrigado a você e a todos que responderam!!!

abraços!!!

Moderação pode trancar!!! Obrigado!