Bonjour,
Je reprends un ancien projet et me rends compte que toutes mes annotations @ManagedBeans sont dépréciées
Le projet fonctionne toujours mais je voudrais le mettre à jour.
En regardant des tutos, je vois qu'il faut remplacer les Backing Beans par des CDI avec l'annotation @Named
Mon environnement
IDE : Eclipse 4.9.0, OS : Ubuntu18, serveur d'app : wildfly14, base : Postgres10 , connecteur : EclipseLink 2.5
J'ai modifié une des classes pour tester
1 2 3 4 5
|
//@ManagedBean (name="mBPresent")
@Named
@ViewScoped
public class MBPresent extends ManageCookies { |
ainsi que beans.xml (modif de bean-discovery-mode="annotated" à bean-discovery-mode="all")
1 2 3 4 5 6 7
|
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.1" bean-discovery-mode="all">
</beans> |
Je peux déployer mon .war mais à la première tentative de connexion à ma base (la page de connexion à mon appli s'affiche) , j'ai un message d'erreur
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
13:07:48,011 INFO [org.eclipse.persistence] (default task-1) EclipseLink, version: Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd
13:07:48,014 INFO [org.eclipse.persistence.connection] (default task-1) connecting(DatabaseLogin(
platform=>PostgreSQLPlatform
user name=> ""
connector=>JNDIConnector datasource name=>null
))
13:07:48,015 INFO [org.eclipse.persistence.connection] (default task-1) Connected: jdbc:postgresql://localhost:5432/vquest
User: vquest
Database: PostgreSQL Version: 10.6 (Ubuntu 10.6-1.pgdg18.04+1)
Driver: PostgreSQL JDBC Driver Version: 42.2.5
13:07:48,016 INFO [org.eclipse.persistence.connection] (default task-1) connecting(DatabaseLogin(
platform=>PostgreSQLPlatform
user name=> ""
connector=>JNDIConnector datasource name=>null
))
13:07:48,016 INFO [org.eclipse.persistence.connection] (default task-1) Connected: jdbc:postgresql://localhost:5432/vquest
User: vquest
Database: PostgreSQL Version: 10.6 (Ubuntu 10.6-1.pgdg18.04+1)
Driver: PostgreSQL JDBC Driver Version: 42.2.5
13:07:48,089 INFO [org.eclipse.persistence.connection] (default task-1) vfs:/content/VQuest.war/WEB-INF/classes/_vitalityquest login successful
13:07:48,152 ERROR [stderr] (default task-1) javax.persistence.NoResultException: getSingleResult() did not retrieve any entities. |
En recompilant avec un Backing Bean plutôt qu'un CDI, tout se passe bien et j'accède à toute ma base sans problème.
Eclipse ne voit aucun problème : la connexion à la base se fait (Properties/JPA/Connection) ; au niveau de Wildfly, la datasource est reconnue et valide
La ligne de ma classe qui pose souci est
vquser=ejbuser.selectUserByIdent(identifier);
Je ne vois pas où se situe le problème.
J'utilise des EJB mais le fait de passer par des @Inject ne change rien
Merci de votre aide
Partager