Erreur "SQL Error: 17002, SQLState: null"
Bonjour ,
je en suis en train de faire une application en utilisant les frameworks jsf , spring , hibernate à la base de spécification JPA , et comme SGCD Oracle 9i
Pour tester si mon code est bien , j'ai utilisé Junit pour les tests unitaires or j'ai le problèeme suivant mais j'ai pas compris la source si vous pouvez m'aider !
Le code source est :
Code:
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
package catalogue.junit;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestCriteria {
private static CatalogueVendeurService Service;
private static EntityManagerFactory entityManagerFactory;
private static EntityManager entityManager;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[] { "META-INF/spring/applicationContext.xml" });
Service = (CatalogueVendeurService) appContext
.getBean("CatalogueVendeurService");
entityManagerFactory = (EntityManagerFactory) appContext
.getBean("entityManagerFactory");
entityManager = entityManagerFactory.createEntityManager();
}
public static CatalogueVendeurService getService() {
return Service;
}
public static void setService(CatalogueVendeurService service) {
Service = service;
}
@Test
public void testCriteria() {
try {
chargementCatalogue();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void chargementCatalogue() throws Exception, IOException {
// TODO Auto-generated method stub
Logger logger = Logger.getLogger("CatalogueTest");
FileHandler fh;
fh = new FileHandler("c:\\CatalogueCRM.log", true);
logger.addHandler(fh);
logger.setLevel(Level.ALL);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
logger.info("*************************** le debut de debug *******************");
MappeToPivot parser = new MappeToPivot("D:\\ImportOfferOGSMPOSTB2C.xml");
parser.go();
logger.info("fichier xml est parsé ");
VCatalogueVendeur vcatalogue = new VCatalogueVendeur();
vcatalogue = parser.getCatalogueVendeur();
VOffre voffreMer = new VOffre();
voffreMer = parser.getOffreMere();
logger.info("creation d'un catalogue ");
//
CatalogueVendeur catalogue = new CatalogueVendeur();
// Offre mère final
Offre offreMere = new Offre();
// catalogue
catalogue.setIdCatalogue(vcatalogue.getId());
catalogue.setReferentiel(vcatalogue.getReferentiel());
catalogue.setDateMiseAjour(new Date());
catalogue.setType("Tester");
// offre
offreMere.setDateCreation(voffreMer.getDateCreation());
offreMere.setDescription(voffreMer.getDescription());
offreMere.setIdOffre(voffreMer.getIdArticle());
offreMere.setNomArticle(voffreMer.getNomArticle());
// la fin d'init
catalogue.setOffreMer(offreMere);
// l ajout du catalogue dans la base de données temp
this.Service.add(catalogue);
// la liste des sousoffres
List<VSousOffre> vsousOffresObligatoire = new ArrayList<VSousOffre>();
List<VSousOffre> vsousOffresOptionel = new ArrayList<VSousOffre>();
vsousOffresObligatoire = voffreMer.getSousOffreObligatoire();
vsousOffresOptionel = voffreMer.getSousOffreOptionnel();
logger.info("creation des sous offres ");
// =============================================================
logger.info("la taille de la liste des sous offres obligatoires "
+ vsousOffresObligatoire.size());
logger.info("la taille de la liste des sous offres optionnelles "
+ vsousOffresOptionel.size());
System.out.println("la liste des sous offres "
+ (vsousOffresObligatoire.size() + vsousOffresOptionel.size()));
// traitement de la liste des sousoffres optionnelles
if(vsousOffresOptionel.size()>0){
System.out.println("vsousOffresOptionel>0");
for (int i =0 ; i<vsousOffresOptionel.size() ; i++ ){
SousOffre unsousoffre = new SousOffre();
VSousOffre tempUnsousoffre = new VSousOffre();
tempUnsousoffre= vsousOffresOptionel.get(i);
unsousoffre.setDateCreation(tempUnsousoffre.getDateCreation());
unsousoffre.setDescription(tempUnsousoffre.getDescription());
unsousoffre.setIdSousOffre(tempUnsousoffre.getIdArticle());
unsousoffre.setType(tempUnsousoffre.getType());
unsousoffre.setSousOffreOptionnel(offreMere);
logger.info("SousOffre N°="+i+"***"+unsousoffre.getIdSousOffre());
logger.info("*****"+i+"***"+tempUnsousoffre.getIdArticle());
this.getService().add(unsousoffre);
offreMere.getSousOffreOptionnel().add(unsousoffre);
}
}
}
// ---------------------------------------------------------------------
public static EntityManagerFactory getEntityManagerFactory() {
return entityManagerFactory;
}
public static EntityManager getEntityManager() {
return entityManager;
}
public static void setEntityManagerFactory(
EntityManagerFactory entityManagerFactory) {
TestCriteria.entityManagerFactory = entityManagerFactory;
}
public static void setEntityManager(EntityManager entityManager) {
TestCriteria.entityManager = entityManager;
}
} |
L'erreur est :
Code:
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| 38814 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 17002, SQLState: null
38814 [main] ERROR org.hibernate.util.JDBCExceptionReporter - Exception d'E/S: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:382)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy37.add(Unknown Source)
at ma.bull.crm.catalogue.junit._TestCriteria.chargementCatalogue(_TestCriteria.java:231)
at ma.bull.crm.catalogue.junit._TestCriteria.testCriteria(_TestCriteria.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1215)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1148)
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:1225)
at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:63)
at org.springframework.orm.jpa.DefaultJpaDialect.beginTransaction(DefaultJpaDialect.java:70)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:57)
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:332)
... 32 more
Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)
at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:60)
... 35 more
Caused by: java.sql.SQLException: Exception d'E/S: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)
at oracle.jdbc.ttc7.TTC7Protocol.handleIOException(TTC7Protocol.java:3668)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:353)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:371)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:551)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:351)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:190)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:71)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 40 more |
Mais j'arrive à connecter à mon application via un login et password càd la connexion avec oracle ca marche