Bonjour,
Je développe sous Ubuntu 64, Java 1.6, Bonita5.5 avec Tomcat 6.0.29. C'est mes premiers pas dans le dévellopement Web Java, il se peut que je ne fasse pas quelque chose qui est à la base
J'essaie de développer une classe Java classique (pas Web) qui se connecte à Bonita pour lister les process définit dans Bonita. En fait l'objectif c'est d'utiliser l'API client Bonita plutôt que de passer par RestAssured.
J'ai codé une petite classe :
J'ai une erreur dans loginContext.login();
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 public static void main(String[] args) { try { System.setProperty("BONITA_HOME", "/opt/BOS-5.5-Tomcat-6.0.32/bonita"); System.setProperty("java.naming.factory.initial", "org.apache.naming.java.javaURLContextFactory"); System.setProperty("java.naming.provider.url", "http://localhost:8130/bonita/"); System.setProperty("java.naming.factory.url.pkgs","org.apache.naming"); System.setProperty("java.security.auth.login.config", "/opt/BOS/external/security/jaas-standard.cfg"); System.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl"); LoginContext loginContext loginContext = new LoginContext("BonitaAuth", new SimpleCallbackHandler("admin", "bpm")); loginContext.login(); ...... } catch (Exception e) { e.printStackTrace(); } }
Ce que je comprend c'est que ma classe arrive à lire le fichier contenant la référence au DataSource (java:/comp/env/bonita/default/journal) mais après il est perdu.
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 5 avr. 2012 08:25:11 org.hibernate.util.NamingHelper getInitialContext INFO: JNDI InitialContext properties:{} 5 avr. 2012 08:25:11 org.hibernate.connection.DatasourceConnectionProvider configure GRAVE: Could not find datasource: java:/comp/env/bonita/default/journal javax.naming.NameNotFoundException: Name java: is not bound in this Context .... at org.jfc.bonita.client.TestBonitaClient.main(TestBonitaClient.java:78) org.hibernate.HibernateException: Could not find datasource at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:79) ... at org.jfc.bonita.client.TestBonitaClient.main(TestBonitaClient.java:78) Caused by: javax.naming.NameNotFoundException: Name java: is not bound in this Context at org.apache.naming.NamingContext.lookup(NamingContext.java:770) ... 5 avr. 2012 08:25:11 org.ow2.bonita.util.Misc showProblems GRAVE: error : couldn't interpret the dom model : org.hibernate.HibernateException: Could not find datasource. Cause: org.hibernate.HibernateException: Could not find datasource org.ow2.bonita.util.BonitaRuntimeException: Bonita Error: bp_Pa_1 errors during parsing of environment: error : couldn't interpret the dom model : org.hibernate.HibernateException: Could not find datasource
Serai-ce le fichier JNDI properties juste avant qui est vide la raison de mon problème ? Je ne sais pas et je n'arrive pas à voir comment renseigner ce fichier.
J'ai fait un petit test en modifiant dans ${BONITA_HOME}/server/default/conf/bonita-journal.properties, j'ai indiqué un DataSource bidon, j'ai relancé le service et après m'être connecté à Bonita j'ai eu une erreur HTTP 500 qui m'expliquait qu'il y avait un problème avec le DataSource. Je lance ma classe et il m'indique la même chose en affichant ce que j'ai modifié dans bonita-journal.properties.
Je remet la bonne valeur et rafraichit la page web qui m'affiche la console Bonita (donc il s'est retrouvé) par contre en exécutant ma classe j'ai toujours l'erreur ci-dessus.
J'en déduis que le service à des informations que je ne fourni pas à ma classe mais je ne sais pas lesquelles ?
Pouvez-vous m'aider ? Je suis sûr que c'est une information basique mais comme je ne maitrise pas le sujet et que le message d'erreur n'est suffisament explicite pour moi je bloque.
Merci.
Partager