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?
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
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)