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 :
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();
        }
    }
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
 
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
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.
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.