[RESOLVIDO] Não quer criar o Componente Seam

5 respostas
R

E ai pessoal. estou com um problema, não quer criar um componente no seam e eu não sei porque.

Aparentemente esta tudo correto. mas esta gerando o seguinte erro:

org.jboss.seam.InstantiationException: Could not instantiate Seam component: register
	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.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
	at javax.faces.component.UIOutput.getValue(UIOutput.java:184)
	at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:201)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:285)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:154)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
	at org.jboss.seam.ui.util.cdk.RendererBase.renderChild(RendererBase.java:190)
	at org.jboss.seam.ui.util.cdk.RendererBase.renderChildren(RendererBase.java:166)
	at org.jboss.seam.ui.renderkit.DecorateRendererBase.doEncodeChildren(DecorateRendererBase.java:152)
	at org.jboss.seam.ui.util.cdk.RendererBase.encodeChildren(RendererBase.java:92)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
	at org.jboss.seam.ui.util.cdk.RendererBase.renderChild(RendererBase.java:186)
	at org.jboss.seam.ui.util.cdk.RendererBase.renderChildren(RendererBase.java:166)
	at org.jboss.seam.ui.renderkit.ValidateAllRendererBase.doEncodeChildren(ValidateAllRendererBase.java:33)
	at org.jboss.seam.ui.util.cdk.RendererBase.encodeChildren(RendererBase.java:92)
	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 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.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(Thread.java:636)
Caused by: javax.naming.NameNotFoundException: RegisterBean not bound
	at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
	at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
	at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
	at org.jnp.server.NamingServer.lookup(NamingServer.java:396)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
	at javax.naming.InitialContext.lookup(InitialContext.java:409)
	at org.jboss.seam.Component.instantiateSessionBean(Component.java:1403)
	at org.jboss.seam.Component.instantiate(Component.java:1367)
	at org.jboss.seam.Component.newInstance(Component.java:2148)
	... 83 more

Agora lá vai o código das Actions.

package br.com.sofistcar.beans;

import java.util.List;

import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.faces.FacesMessages;

import br.com.sofistcar.model.User;

@Name("register")
@Scope(ScopeType.EVENT)
@Stateful
public class RegisterBean implements Register {

	@In
	private User currentUser;

	@In("#{entityManager}")
	EntityManager em;

	@In(create = true)
	private transient FacesMessages facesMessages;

	private String verifyPassword;

	public String getVerifyPassword() {
		return verifyPassword;
	}

	public void setVerifyPassword(String verifyPassword) {
		this.verifyPassword = verifyPassword;
	}

	@SuppressWarnings("rawtypes")
	public String doRegister() {
		if (!currentUser.getPassword().equals(verifyPassword)) {
			facesMessages.add("Passwords didn't match!");
			verifyPassword = null;
		return null;
		}
		
		List existing = em.createQuery("select u.username from User u" +
				" where u.username = :uname")
				.setParameter("uname", currentUser.getUsername())
				.getResultList();
		if (existing.size() != 0) {
			facesMessages.add("User exists!");
			return null;
		} else {
			em.persist(currentUser); // Grava no Banco de Dados
			facesMessages.add("Registration complete.");
			return "login";
		}
		}

	@Remove
	@Destroy
	public void destroy() {
	}

}

Se alguem puder ajudar eu agradeço.

Valeu pessoal.

5 Respostas

A

Brother, coloque seu componente no diretório (src/hot) e ver se funciona.

Poste se funcionou ou não.

Abraço.

R

Beleza Alberthy. Fiz o que vc me disse criei um novo package no src/hot, e coloquei o meu Beam e não funcionou, estou postando agora também o codigo do xhtml.

O mais estranho que esta o #{currentUser} esta criando o componente normalmente. não da erro.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:s="http://jboss.com/products/seam/taglib"
	template="/caveat/template.xhtml">

	<ui:define name="screen">Registro</ui:define>
	<ui:define name="sidebar">
		Área de Registro
	</ui:define>
	<ui:define name="content">
		<h:form>
			<f:facet name="beforeInvalidField">
				<h:graphicImage value="/img/attention.gif" width="18" height="18"
					styleClass="attentionImage" />
			</f:facet>
			<f:facet name="afterInvalidField">
				<s:message />
			</f:facet>
			<div class="errors" align="center"><h:messages
				globalOnly="true" /></div>
			<s:validateAll>
				<div class="entry">
				<div class="label">Username:</div>
				<div class="input"><s:decorate>
					<h:inputText size="16" required="true"
						value="#{currentUser.username}" />
				</s:decorate></div>
				</div>
				<div class="entry">
				<div class="label">Password:</div>
				<div class="input"><s:decorate>
					<h:inputSecret size="16" required="true"
						value="#{currentUser.password}" />
				</s:decorate></div>
				</div>
				<div class="entry">
				<div class="label">Repeat password:</div>
				<div class="input"><s:decorate>
					<h:inputSecret size="16" required="true"
						value="#{register.verifyPassword}" />
				</s:decorate></div>
				</div>
				<div class="entry">
				<div class="label">Firstname:</div>
				<div class="input"><s:decorate>
					<h:inputText size="32" required="true"
						value="#{currentUser.firstname}" />
				</s:decorate></div>
				</div>
			</s:validateAll>
			<div class="entry">
			<div class="label">&#160;</div>
			<div class="input"><h:commandButton value="Register"
				styleClass="button" action="#{register.doRegister}" /> <h:commandButton
				value="Cancel" styleClass="button" action="login" immediate="true" />
			</div>
			</div>
		</h:form>
	</ui:define>
</ui:composition>

Obrigado a cara.

A

Estou com esse mesmo problema. Conseguiu a solução.
Já estou atrasado a dias por cauda deste mesmo erro.

R

E ai meu amigo, Alex, tudo bem.

Cara não sei o que tinha haver, mais o problema foi solucionado quando removi as anotações o @Stateful e o @Stateless das minhas Actions. Todas voltaram a funcionar
Se alguém puder dar uma explicada o porque as duas anotações causaram esse erro, ficaremos muito agradecidos.

Se do pessoal que

alexfe:
Estou com esse mesmo problema. Conseguiu a solução.
Já estou atrasado a dias por cauda deste mesmo erro.

Obrigado a todos.

A

Agora a pouco enfrentei este problema, resolvi retirando a aplicação do servidor, colocando-a , publicando-a de novo e startando. :slight_smile: que coisaaaaaaa neh :slight_smile:

Criado 20 de janeiro de 2011
Ultima resposta 22 de jan. de 2011
Respostas 5
Participantes 3