cool-girl
Messages postés1Date d'inscriptiondimanche 16 mars 2008StatutMembreDernière intervention12 avril 2012
-
12 avril 2012 à 20:39
mousekey
Messages postés68Date d'inscriptiondimanche 13 février 2005StatutMembreDernière intervention22 novembre 2014
-
12 avril 2012 à 20:40
Bonjour,
J'ai une application client/serveur dont la partie serveur est hébergé et
exécuté par un conteneur Ejb, celui du serveur Glassfish
. Le déploiement de l'application serveur se passe bien.Le client quant à lui présente des erreurs à l'éxécution.
Le client est distant : il utilise une couche [metier] qui s'exécute dans une autre Jvm
.
La classe [Main] de l'application cliente se présente ainsi:
package ui.console;
public class MainRemote {
/**
* @param args
*/
public static void main(String[] args) {
// données locales
final String syntaxe = "pg num_securite_sociale nb_heures_travaillées nb_jours_travaillés";
// on vérifie le nombre de paramètres
// liste des erreurs
ArrayList erreurs = new ArrayList();
// le second paramètre doit être un nombre réel >0
// erreur ?
if (Double.parseDouble(args[1])<0) {
erreurs.add("Le nombre d'heures travaillées [" + args[1]
+ "] est erroné");
}
// le troisième paramètre doit être un nombre entier >0
// erreur ?
if (Integer.parseInt(args[2])<0) {
erreurs.add("Le nombre de jours travaillés [" + args[2]
+ "] est erroné");
}
// des erreurs ?
if (erreurs.size() != 0) {
for (int i = 0; i < erreurs.size(); i++) {
System.err.println(erreurs.get(i));
}
return;
}
// c'est bon - on peut demander la feuille de salaire à la couche [métier]
IMetierRemote metier = null;
// calcul de la feuille de salaire
feuilleSalaire = metier.calculerFeuilleSalaire(args[0], Double.parseDouble(args[1]), Integer.parseInt(args[2]) ) ;
}
catch (PamException ex) {
System.err.println("L'erreur suivante s'est produite : "+ ex.getMessage());
return;
} catch (Exception ex) {
System.err.println("L'erreur suivante s'est produite : "+ ex.toString());
return;
}
...
}
}
L'application coté serveur se nomme « pam-serveur-metier-dao-jpa-eclipselink »
et [metier] est un package contenant une interface locale et une interface distante (j'utilise l'interface distante)
Lorsque j'éxécute l'application cliente j'ai l'erreur suivante :
run:
12 avr. 2012 07:29:14 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:3431)
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:3452)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:256)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:269)
at com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:125)
at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:188)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:186)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:352)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:69)
at com.sun.enterprise.naming.impl.SerialContext.narrowProvider(SerialContext.java:355)
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:327)
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:271)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:430)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at ui.console.MainRemote.main(MainRemote.java:61)
Caused by: java.lang.RuntimeException: java.net.ConnectException: Connection refused
at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:340)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:239)
... 13 more
Caused by: java.net.ConnectException: Connection refused
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:507)
at com.sun.corba.ee.impl.orbutil.ORBUtility.openSocketChannel(ORBUtility.java:106)
at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:325)
... 14 more
L'erreur suivante s'est produite : javax.naming.NamingException: Lookup failed for 'java:global/pam-serveur-metier-dao-jpa-eclipselink/Metier!metier.IMetierRemote' in SerialContext ,orb'sInitialHost=localhost,orb'sInitialPort=3700 [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext ,orb'sInitialHost=localhost,orb'sInitialPort=3700 [Root exception is org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No]]
BUILD SUCCESSFUL (total time: 1 minute 13 seconds)
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.