Erreur TOPLINK-7060 persistence.xml

Fermé
sebeuhlavie Messages postés 1 Date d'inscription lundi 13 août 2012 Statut Membre Dernière intervention 31 août 2012 - 31 août 2012 à 16:44
Bonjour à tous,

Voila c'est la première fois que je post sur un forum, pardonnez moi si ma demande est mal formulée ou pas au bon endroit.

Donc je me lance...

Cela fait quelque temps maintenant que l'on m'a refilé une application java web développé par un stagiaire afin de l'améliorer mais je n'arrive pas à la faire fonctionner.

Lors de l'exécution j'ai les traces d'erreurs suivantes qui apparaissent dans les logs :

13 Aug 2012 13:23:16 [Thread-1] ERROR EngineLogger  - ENGINE - m2m - Configuration failed : net.awl.sipstest.core.exceptions.ConfigurationException: [DatabaseReport][configure] javax.persistence.PersistenceException: Exception [TOPLINK-7060] (Oracle TopLink Essentials - 2.0 (Build 58 (08/05/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: Cannot acquire data source [java:comp/env/jdbc/sips_test_engine].
Internal Exception: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial



Cela me laisse à penser que le problème viendrai du fichier persistence.xml.

Je vous joint donc les différents fichiers concernés :

persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_1_0.xsd">
	<persistence-unit name="test-database" transaction-type="RESOURCE_LOCAL">
		<provider>oracle.toplink.essentials.PersistenceProvider</provider>
		<non-jta-data-source>java:comp/env/jdbc/test_engine</non-jta-data-source>
		<class>net.pack.test.database.entities.ApplicationEntity</class>
		<class>net.pack.test.database.entities.AssertionEntity</class>
		<class>net.pack.test.database.entities.DataEntity</class>
		<class>net.pack.test.database.entities.ExecutionEntity</class>
		<class>net.pack.test.database.entities.ParameterEntity</class>
		<class>net.pack.test.database.entities.PropertyEntity</class>
		<class>net.pack.test.database.entities.StepEntity</class>
		<class>net.pack.test.database.entities.TestEntity</class>
		<exclude-unlisted-classes>false</exclude-unlisted-classes>
		<properties>
			<property name="toplink.session.customizer" value="net.pack.test.database.util.TopLinkSessionCustomizer" />
		</properties>
	</persistence-unit>
</persistence>



server.xml
<Engine name="Standalone" defaultHost="test-engine" debug="0" >
	<Realm className="org.apache.catalina.realm.MemoryRealm" pathname="/MIDDLE/internal/test-engine/tomcat1/conf/tomcat-users.xml"/>
	<Host name="test-engine" debug="0" appBase="/MIDDLE/internal/test-engine/tomcat1/empty" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false">
		<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="access." suffix=".log" pattern="%t %r %q %b %D" resolveHosts="false"/>
		<Context path="" docBase="/MIDDLE/internal/test-engine/webapps" crossContext="false" reloadable="false" workDir="work/tomcat_work" debug="0">
			<Resources allowLinking="true" />
			<!-- <ResourceLink name="jdbc/test_engine" global="jdbc/test_engine" type="javax.sql.DataSource" /> -->
			<Resource name="jdbc/test_engine" auth="Container" type="javax.sql.DataSource" description="BDD access" maxActive="10" maxIdle="3" maxWait="10000" username="user" password="pwd" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://host:4444/test_engine" />
		</Context>
	</Host>
</Engine>




context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true">
        <Resource name="jdbc/test_engine" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" removeAbandoned="true" username="user" password="pwd" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://host:4444/test_engine?autoReconnect=true&amp;useUnicode=true" removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>




web.xml
<resource-ref>
	<description>postgreSQL Datasource example</description>
	<res-ref-name>jdbc/test_engine</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
</resource-ref>




TopLinkSessionCustomizer.java
package net.pack.test.database.util;

import oracle.toplink.essentials.jndi.JNDIConnector;
import oracle.toplink.essentials.sessions.Session;
import oracle.toplink.essentials.tools.sessionconfiguration.SessionCustomizer;


public class TopLinkSessionCustomizer implements SessionCustomizer {
	public void customize(Session session) throws Exception {
		JNDIConnector connector = (JNDIConnector) session.getLogin()
				.getConnector();
		connector.setLookupType(JNDIConnector.STRING_LOOKUP);
	}
}




Cela fait plusieurs mois que je fais des recherches sur internet, et que je tente toutes sortes de solution, mais jusque là rien ne fonctionne.
Je vous remercie par avance pour toute l'aide que vous pourriez m'apporter.