Olá pessoal,
Tô com uma dúvida e não sei como proceder, é o seguinte:
- Possuo uma aplicação MVC que utiliza o Spring
- Nesse mesmo sistema desenvolvi um módulo REST, e já estou conseguindo utilizar, tanto o REST, quanto a aplicação Spring
- O que eu quero é que minha classe de recursos do REST envie uma solicitação ao Spring e obtenha determinada resposta
Não sei como saber, será que alguém poderia me ajudar?
Ah! não sei se ajuda, mas tem um detalhe:
- Quando eu acesso uma determinada URL, utilizo o DispatcherServlet do Spring
- Quando acesso outro tipo de determinada URL, utilizo o SpringServlet do Jersey, Jersey que é a implementação que estou utilizando responsável pelo serviço REST
Como o seu módulo REST é integrado ao Spring, você pode fazer uma injeção no serviço, usando tanto o mecanismo de injeção do Jersey quanto do próprio Spring (@Autowired). Mas, me desculpe o comentário, mas um recurso REST acessando um Controller cheira mal. Qual é sua necessidade?
[]'s
Bem, eu tenho uma aplicação com Spring, que já está funcionando há algum tempo, e agora surgiu a necessidade de eu disponibilizar um serviço REST de dados que essa mesma aplicação manipula, então pensei que poderia utilizar parte disso. A idéia é que para cada solicitação no serviço, por exemplo @GET, eu gostaria de realizar a mesma consulta de dados que a aplicação já existente realiza, mas através do meu facade.
O XML dos DAO,BO e MVC já estã configurados, preciso apenas configurar no meu facade como utilizar esses elementos que já manipulam minha base de dados.
[quote=jmountain]Bem, eu tenho uma aplicação com Spring, que já está funcionando há algum tempo, e agora surgiu a necessidade de eu disponibilizar um serviço REST de dados que essa mesma aplicação manipula, então pensei que poderia utilizar parte disso. A idéia é que para cada solicitação no serviço, por exemplo @GET, eu gostaria de realizar a mesma consulta de dados que a aplicação já existente realiza, mas através do meu facade.
O XML dos DAO,BO e MVC já estã configurados, preciso apenas configurar no meu facade como utilizar esses elementos que já manipulam minha base de dados.
[/quote]
Entendí… é um façade que você vai acessar, não um controller.
Bom, a injeção default do Spring ou do Jersey deve funcionar. Se precisar de exemplos, poste um serviço e um façade.
[]'s
package com.kohl.resources;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Stateless
@Path("products")
public class ProductsFacadeRest {
@GET
@Produces("text/html")
public String findAll(){
return "HelloWorld";
}
}
Estou conseguindo acessar isso normalmente, porém eu queria uma forma de que esse serviço retornasse o mesmo quando eu acesso localhost:8080/khol/ws/feed.ws?query=hotspot
Segue a definição:
<bean id="usHandlerMappingSimple"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="environmentInterceptor"/>
<ref bean="authenticityTokenInterceptor"/>
<ref bean="errorUrlCleanerInterceptor"/>
</list>
</property>
<property name="urlMap">
<map>
<!-- Products -->
<entry key="/ws/feed.ws" value-ref="productsSearchController" />
</map>
</property>
</bean>
<bean id="productsSearchController" class="com.kohl.mvc.controller.ProductsQuerySearchController">
<property name="view" value="ws/products-query"/>
<property name="webServiceBO" ref="webServiceBO" />
<property name="paginationBO" ref="paginationBO"/>
<property name="requestUtilsBO" ref="requestUtilsBO"/>
<property name="commandName" value="search"/>
<property name="commandClass" value="com.kalel.onlinecatalog.mvc.command.SearchProductCommand"/>
</bean>
Você está usando Spring ou EJB?!?!?!
Spring e Jersey.
EJB seria esse XML definindo beans?
Desculpe, tem alguns conceitos que ainda são novos para mim.