web-dev-qa-db-fra.com

Comment implémenter le service JAX-RS RESTful dans le framework JSF

Dans mon laboratoire, il m'a été demandé de créer un site Web simple utilisant le framework JSF et d'utiliser également REST. J'ai fait des recherches sur ces deux-là. Il s'avère que pour REST, je dois utiliser le framework JAX-RS avec Jersey. Je me demandais comment intégrer ces deux frameworks, JAX-RS et JSF?

J'ai déjà le servlet ci-dessous dans web.xml pour JSF:

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/test/*</url-pattern>
</servlet-mapping>

Pour Jersey, j’ai pensé que je devais utiliser le servlet ci-dessous dans web.xml:

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.jbm.rest</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

Ma préoccupation est la suivante: il me semble que cette servlet Jersey va remplacer la servlet Faces dans web.xml. Cela modifiera mon application de JSF à JAX-RS. Mais je veux conserver JSF et utiliser JAX-RS également. Comment puis je faire ça?

11
asdfkjasdfjk

Pour tous ceux qui tentent de le faire dans XPages, il existe un contrôle REST que vous pouvez déposer sur la page à partir de la bibliothèque de composants.

Comme pour la liaison d'un ActionListener, vous liez une classe Java au composant et définissez un modèle d'URL.

Voir cette note: https://oliverbusse.notesx.net/hp.nsf/blogpost.xsp?documentId=2C4E

et exemple d'application https://github.com/zeromancer1972/simplerest/blob/master/ODP/XPages/index.xsp

0
xpagesbeast

Vous ne pouvez pas avoir directement les deux dans la même classe ou couche Java ..__ Je l’ai implémenté comme ci-dessous

                              |---> JSF Managed Beans(Inject logic here)
Database --> Daos --> Logic --|
                              |---> JAX-RS  (Inject logic here)
0
electricalbah