RestFaces - duvida! [RESOLVIDO]

Olá,

No projeto que estou desenvolvendo, surgiu a necessidade de usar GET para obter informações sobre alguns produtos.

Pelo exemplo que veio no RESTFaces não vi nenhum que satisfaz a minha necessidade.

que é a seguinte:

1. quero passar uma url mais ou menos assim: …/produto/destalhes/id=123
2. a partir desse id, executar um metodo: Produto obterProduto(Long id){…}
3. em seguida setar em no managedBean o atributo produto para que na página de detalhes, eu possua informacões do produto de id 123.

e possivel fazer isso com RESTFACES??

caso seja, como é que eu faço?

Att. Dirceu

[quote=DirceuSobrinho]Olá,

1. quero passar uma url mais ou menos assim: …/produto/destalhes/id=123
2. a partir desse id, executar um metodo: Produto obterProduto(Long id){…}
3. em seguida setar em no managedBean o atributo produto para que na página de detalhes, eu possua informacões do produto de id 123.

[/quote]

lendo a documentação do restFaces, vi que isso é feito atraves de anotações

anotei da seguinte forma meu método:

        public AnuncioVeiculoBean() {
	}
	
	@Instance("#{anuncioVeiculoBean}")
	@HttpAction(value="veiculoAction", pattern="veiculo/{id}")
	public String getAnuncioVeiculoById(@Param("id") long id) {
	    anuncioVeiculo = anuncioVeiculoDAO.retrieve(id);
	    return "irDetalheVeiculo";
	}

e na página que faz a chamada:

<rest:link value=“veiculoAction”>
<f:param name=“date” value="#{a.id}"/>
<h:outputText value="#{a.titulo}"/>
</rest:link>

obtenho o seguinte erro:
Caused by: org.restfaces.RestFacesException: Invalid action name or view id: ‘veiculoAction’
at org.restfaces.core.RestApplication.getURL(RestApplication.java:227)
at org.restfaces.renderkit.LinkRenderer.encodeBegin(LinkRenderer.java:72)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:528)
… 58 more


Já se eu coloco a url …/veiculo/123 -> diz -> page not found

E ae, alguem sabe o q está acontecendo?

Att. Dirceu

Conseguir usar o RESTFACES no meu projeto, no entanto, não com anotacoes, como contem nos exemplos da versão 1.3, acho q em razão das classes anotadas estarem em um arquivo .jar

sendo assim, criei um arquivo rest-faces-rules.xml

<rest-faces xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="https://restfaces.dev.java.net/schema/restfaces-1.3.xsd">

  <!-- similar to @HttpAction -->
  <action name="detalheVeiculo" value="#{anuncioVeiculoBean.selectAnuncioById}" pattern="veiculo/{id}">
	<property param="id" value="#{anuncioVeiculoBean.paramId}"/>
  </action>
...

Pagina que chama a acao detalheVeiuulo:

<h:panelGroup>
						<rest:link value="detalheAdulto">
							<f:param name="id" value="#{a.id}" />
							<h:graphicImage border="0" height="80" width="100"
								value="/arquivos/0_semfoto.jpg" rendered="${a.fotos[0] == null}" />
							<h:graphicImage border="0" value="${a.fotos[0].url100x80}"
								rendered="${a.fotos[0] != null}" />
						</rest:link>
</h:panelGroup>

Managed Bean que possui a implementacao do método selectAnuncioById()

...
private Long paramId;

public String selectAnuncioById() {
			anuncioVeiculo = anuncioVeiculoDAO.retrieve(paramId);
			return "irDetalheVeiculo";
	}
...

Att. Dirceu