Maven2 + Tomcat 7 + Hibernate + MySQL 5.5.13

0

Cześć Wszystkim. Mam problem z aplikacją na Tomcat7.
Otóż stworzyłem sobie prosty projekt, bez stereotypu Mavenowego, oparty o Hibernate, dedykowany dla Tomcat7.
Niestety dostaję błąd mówiący, ze moje sterowniki JDBC nie obsługują mojej bazy danych...
Proszę o pomoc gdzie może leżeć błąd.

Mój persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
	xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
	<persistence-unit name="DyzurniWEB" transaction-type="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<class>pl.bgora.entities.Person</class>
		<class>pl.bgora.entities.Week</class>
		<exclude-unlisted-classes></exclude-unlisted-classes>
		<properties>
			<property name="hibernate.connection.url" value="jdbc://mysql://localhost:3306/dyzurni" />
			<property name="hibernate.connection.username" value="dyzurny" />
			<property name="hibernate.connection.password" value="dyzurny123" />
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
			<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
			<property name="hibernate.hbm2ddl.auto" value="create"/>
			<property name="hibernate.show.sql" value="true"></property> 
		</properties>
	</persistence-unit>
</persistence>
 

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>pl.bgora</groupId>
	<artifactId>DyzurniWEB</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>DyzurniWEB</name>
	<build>
	<finalName>DyzurniWEB</finalName>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.1</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-entitymanager</artifactId>
			<version>3.3.2.GA</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>3.3.2.GA</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.12</version>
		</dependency>
		<dependency>
			<groupId>tomcat</groupId>
			<artifactId>servlet-api</artifactId>
			<scope>system</scope>
			<systemPath>D:\\programy\\apache-tomcat-7.0.19\lib\\servlet-api.jar</systemPath>
		</dependency>
	</dependencies>
</project> 

Output z Tomcata:

2012-02-05 20:25:46 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Programy\Java\jdk1.6.0_25\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/Programy/Java/jdk1.6.0_25/bin/../jre/bin/client;D:/Programy/Java/jdk1.6.0_25/bin/../jre/bin;D:/Programy/Java/jdk1.6.0_25/bin/../jre/lib/i386;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Programy\Java\jdk1.6.0_25\bin;D:\programy\TortoiseSVN\bin;D:\Programy\apache-maven-2.2.1\bin;C:\Program Files\QuickTime\QTSystem\;D:\Programy\eclipse-jee-indigo-SR1-win32\eclipse;
2012-02-05 20:25:46 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:DyzurniWEB' did not find a matching property.
2012-02-05 20:25:47 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
2012-02-05 20:25:47 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
2012-02-05 20:25:47 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 527 ms
2012-02-05 20:25:47 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
2012-02-05 20:25:47 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.19
Servlet Context Initialized
2012-02-05 20:25:47 org.hibernate.cfg.annotations.Version <clinit>
INFO: Hibernate Annotations 3.3.1.GA
2012-02-05 20:25:47 org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2.6
2012-02-05 20:25:47 org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
2012-02-05 20:25:47 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
2012-02-05 20:25:47 org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
2012-02-05 20:25:48 org.hibernate.ejb.Version <clinit>
INFO: Hibernate EntityManager 3.3.2.GA
2012-02-05 20:25:49 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: pl.bgora.entities.Person
2012-02-05 20:25:49 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity pl.bgora.entities.Person on table Person
2012-02-05 20:25:49 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: pl.bgora.entities.Week
2012-02-05 20:25:49 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity pl.bgora.entities.Week on table Week
2012-02-05 20:25:49 org.hibernate.cfg.annotations.CollectionBinder bindOneToManySecondPass
INFO: Mapping collection: pl.bgora.entities.Person.weeks -> Week
2012-02-05 20:25:49 org.hibernate.cfg.AnnotationConfiguration secondPassCompile
INFO: Hibernate Validator not found: ignoring
2012-02-05 20:25:49 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Using Hibernate built-in connection pool (not for production use!)
2012-02-05 20:25:49 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Hibernate connection pool size: 20
2012-02-05 20:25:49 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: autocommit mode: true
2012-02-05 20:25:49 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: using driver: com.mysql.jdbc.Driver at URL: jdbc://mysql://localhost:3306/dyzurni
2012-02-05 20:25:49 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: connection properties: {user=dyzurny, password=****, autocommit=true, release_mode=auto}
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
WARNING: Could not obtain connection metadata
java.sql.SQLException: No suitable driver found for jdbc://mysql://localhost:3306/dyzurni
	at java.sql.DriverManager.getConnection(DriverManager.java:602)
	at java.sql.DriverManager.getConnection(DriverManager.java:154)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298)
	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
	at pl.bgora.db.DBManagerSingleton.getEntityManager(DBManagerSingleton.java:14)
	at pl.bgora.listeners.DyzurniContextListener.contextInitialized(DyzurniContextListener.java:27)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
2012-02-05 20:25:49 org.hibernate.dialect.Dialect <init>
INFO: Using dialect: org.hibernate.dialect.MySQLDialect
2012-02-05 20:25:49 org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
INFO: Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
2012-02-05 20:25:49 org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic flush during beforeCompletion(): disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic session close at end of transaction: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Scrollable result sets: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC3 getGeneratedKeys(): disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Connection release mode: auto
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Maximum outer join fetch depth: 2
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default batch fetch size: 1
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Generate SQL with comments: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL updates by primary key: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL inserts for batching: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
2012-02-05 20:25:49 org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
INFO: Using ASTQueryTranslatorFactory
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query language substitutions: {}
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JPA-QL strict compliance: enabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Second-level cache: enabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query cache: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory createCacheProvider
INFO: Cache provider: org.hibernate.cache.NoCacheProvider
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Optimize cache for minimal puts: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Structured second-level cache entries: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Statistics: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Deleted entity synthetic identifier rollback: disabled
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default entity-mode: pojo
2012-02-05 20:25:49 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Named query checking : enabled
2012-02-05 20:25:49 org.hibernate.impl.SessionFactoryImpl <init>
INFO: building session factory
2012-02-05 20:25:50 org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
2012-02-05 20:25:50 org.hibernate.tool.hbm2ddl.SchemaExport execute
INFO: Running hbm2ddl schema export
2012-02-05 20:25:50 org.hibernate.tool.hbm2ddl.SchemaExport execute
INFO: exporting generated schema to database
2012-02-05 20:25:50 org.hibernate.tool.hbm2ddl.SchemaExport execute
SEVERE: schema export unsuccessful
java.sql.SQLException: No suitable driver found for jdbc://mysql://localhost:3306/dyzurni
	at java.sql.DriverManager.getConnection(DriverManager.java:602)
	at java.sql.DriverManager.getConnection(DriverManager.java:154)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
	at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:27)
	at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:180)
	at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:133)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:311)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
	at pl.bgora.db.DBManagerSingleton.getEntityManager(DBManagerSingleton.java:14)
	at pl.bgora.listeners.DyzurniContextListener.contextInitialized(DyzurniContextListener.java:27)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
2012-02-05 20:25:50 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
2012-02-05 20:25:50 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
2012-02-05 20:25:50 org.apache.catalina.startup.Catalina start
INFO: Server startup in 3150 ms
 

Klasa w której się sypie podczas inicjalizacji Fabryki sesji:

 public enum DBManagerSingleton {

	INSTANCE;

	private EntityManagerFactory emf;

	public synchronized EntityManager getEntityManager() {
		emf = Persistence.createEntityManagerFactory("DyzurniWEB");
		return emf.createEntityManager();
	}

	public synchronized void destroy() {
		if (emf != null) {
			emf.close();
			emf = null;
		}
	}

Proszę o pomoc.
Pozdrawiam.

0

Na oko brakuje sterownika jdbc do mysqla. Czy ten artefakt na pewno się ściągnął? Czy jest dodany do classpatha? (bo jeśli deployujesz z poziomu eclipse a nie mavena to musisz to ręcznie zrobić, tzn możesz użyć zmiennej M2_REPO ale musisz dodać tą zależność z palca)?

0

Hej, na pewno jest ściągnięty, bo jak wpisuję nazwę klasy JDBC w eclipse to mi go znajduje w jarze w lokalnym repo.
Co znaczy dodać zależność z palca? Myślałem ,ze M2Eclipse sam sobie radzi z deployem do tomcata :)

0

Radzi sobie ale czy deployujesz za pomocą mavena? Czy klikasz sobie "run on server"? ;)
Jak z palca? Prawy klik na projekt -> build path i tam sobie to ustawiasz

0

Klikam run on server.
Z tego co pamiętam, na tomcacie 6.0 run on server i m2Eclipse z pluginem do wtp potrafił to zdeployować normalnie bez żadnych jazd... :/

0

a jak rozpakujesz stworzonego wara recznie to masz ten sterownik gdzies?

sprobuj sterownik wrzucic do folderu lib w tomcacie i czy to tak zabangla ( lub zbuduj paczke mvn assembly:assembly i wrzuc na tomcata )

0

wydaje mi się że masz literówkę w urlu:
nie jdbc://mysql://
tylko jdbc:mysql://

0

Fakt, zły url :)

Dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1