Bonjour
Je travaille sur le développement d'une interface qui interagit avec une base de données Oracle. J'ai un soucis avec une page qui doit afficher des informations récupéré dans une table qui est aussi utilisée par une deuxième application. Il se trouve que quand j'appelle la page pour la première fois, et que j'exécute la méthode pour récupérer les valeurs de la table, elle affiche correctement les informations en base. Par la suite, la deuxième application modifie les valeurs dans notre table. Après que les modifications soient effectuées, lorsque j'appelle à nouveau ma page, et que j’exécute la méthode qui récupère les valeurs dans la table, c'est toujours les valeurs récupérées avant modification qui s'affiche. Pourriez vous m'aider à résoudre ce problème? Merci
Voici le code mis en œuvre pour l'interface sur laquelle je travaille
Entity
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 @Embeddable public class NetworkPK implements Serializable { @Basic(optional = false) @Column(name = "APPSRC") private Long appSrc; @Basic(optional = false) @Column(name = "MTI") private String mti; @Basic(optional = false) @Column(name = "FUNCTIONCODE") private String functionCode; // Constructeurs // getter and setter ... // hashCode ... // equals ... // toString }Session
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 @Entity @Table(name = "NETWORK") @NamedQueries({ .... }) public class Network implements Serializable { private static final long serialVersionUID = 1L; @EmbeddedId protected NetworkPK networkPK; @Column(name = "SYSDATETIME") @Temporal(TemporalType.TIMESTAMP) private Date sysDateTime; @Column(name = "NUMB") private Long numb; // Constructeurs // getter and setter ... // hashCode ... // equals ... // toString }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 @Stateless public class SuiviExploitationFacadeBean implements SuiviExploitationFacade { @PersistenceContext(unitName = "safeconnect-ejbPU") private EntityManager em; ... @Override public Network findById(Long appSrc, String mti, String functionCode) { return em.find(Network.class, new NetworkPK(appSrc, mti, functionCode)); } ... }Managed Bean
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 @Stateless public class SuiviExploitationBean implements SuiviExploitation { @EJB SuiviExploitationFacade suiviEf; @Override public String etatSessionApplicative(Long appSrc, String mti, String functionCode){ String esa = null; Network network = new Network(); network = suiviEf.findById(appSrc, mti, functionCode); if (network.getNumb() == 1L) esa = "SIGN-OFF"; else esa = "SIGN-ON"; return esa; } @Override public Date dateHeure(Long appSrc, String mti, String functionCode){ Network network = new Network(); network = suiviEf.findById(appSrc, mti, functionCode); return network.getSysDateTime(); } @Override public Long echoTest(Long appSrc, String mti, String functionCode){ Network network = new Network(); network = suiviEf.findById(appSrc, mti, functionCode); return network.getNumb(); } }
Page JSF: exploit_appconn_view.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 @ManagedBean(name = "exploitationController") @RequestScoped public class ExploitationController { @EJB private SuiviExploitation suiviE; private String etatSessApp; private Date dateTranRec; private Date dateRepEnv; private Date dateSignOn; private Date dateSignOff; private Date dateMsgEchoTest; private Long valeur; // Constructeurs // getter et setter // methode utilisé pour appeler la page JSF. J'initialise tous les champs de la page avec null; public String reinitConnexionApp() { etatSessApp = null; dateTranRec = null; dateRepEnv = null; dateSignOn = null; dateSignOff = null; dateMsgEchoTest = null; valeur = null; return "exploit_appconn_view"; } // méthode exécutée pour afficher les valeurs présentent dans notre table public String executerConnexionApp() { appSrc = 1L; etatSessApp = suiviE.etatSessionApplicative(1L, "1804", "001"); dateTranRec = suiviE.dateHeure(1L, "0002", "001"); dateRepEnv = suiviE.dateHeure(1L, "0002", "000"); dateSignOn = suiviE.dateHeure(1L, "1804", "001"); dateSignOff = suiviE.dateHeure(1L, "1804", "002"); dateMsgEchoTest = suiviE.dateHeure(1L, "1804", "270"); valeur = suiviE.echoTest(1L, "1804", "270"); return "exploit_appconn_view"; } }
Si vous avez eventuellement besoin de savoir d'autres détails susceptibles de vous permettre de me donne un coup de main, n'hésitez pas à me le faire savoir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <ui:define name="content"> <h1 class="title ui-widget-header ui-corner-all"> <h:outputText value="#{language.caTitre}" /> </h1> <div class="entry"> <h:form prependId="false"> <p:messages showDetail="true"/> <h:panelGrid columns="2"> <h:outputText value="Application source"/> <h:inputText value="#{exploitationController.appSrc}" /> <h:outputText value="Etat Session Applicative"/> <h:inputText value="#{exploitationController.etatSessApp}" /> <h:outputText value="Date heure dernière transaction reçue"/> <h:inputText value="#{exploitationController.dateDernTranRec}"> <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss"/> </h:inputText> <h:outputText value="Date heure dernière reponse envoyée"/> <h:inputText value="#{exploitationController.dateDernRepEnv}"> <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss"/> </h:inputText> <h:outputText value="Date heure dernier sign-on"/> <h:inputText value="#{exploitationController.dateSignOn}"> <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss"/> </h:inputText> <h:outputText value="Date et heure dernier sing-off"/> <h:inputText value="#{exploitationController.dateSignOff}"> <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss"/> </h:inputText> </h:panelGrid> <h:panelGrid columns="4"> <h:outputText value="Date heure dernier message echo test"/> <h:inputText value="#{exploitationController.dateDernMsgEchoTest}"> <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss"/> </h:inputText> <h:outputText value="Valeur"/> <h:inputText value="#{exploitationController.valEchoTest}"/> </h:panelGrid> </h:form> </div> </ui:define>
Merci d'avance
Partager