ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
2540
2540
EMPFEHLEN
-
Hallo Mitkämpfer,
ich habe ein Problem nach einem Update meiner Hibernate-Bibliotheken und weiß im Moment nicht weiter. Vor dem Update der Hibernate-Annotations auf 3.3.x und Spring auf
2.5.5 funktionierte noch alles. (Vorher Spring 2.0.8)
Wäre für einen hilfreichen Tip sehr dankbar !
Die Fehlermeldung beim Start des JBoss sagt, dass die DataSource PostgresDS nicht per JDNI gefunden werden kann, aber JBoss sagt, die Datasource sei gebunden worden.
benutzte Bibliotheken (soweit nur Spring und Hibernate aufgelistet, vielleicht passt hier was nicht: )
spring-2.5.5.jar
spring-core-2.5.5.jar
spring-beans-2.5.3.jar
spring-context-2.5.3.jar
spring-web-2.5.5.jar
hibernate-3.2.6.ga.jar
hibernate-annotations-3.3.1.GA.jar
hibernate-commons-annotations-3.3.0.ga.jar
hibernate-entitymanager-3.3.1.ga.jar
hibernate-validator-3.0.0.ga.jar
persistence-api-1.0.jar
ejb3-persistence-1.0.1.GA.jar
Der JBoss-Output (etwas gekürzt):
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
14:51:57,129 INFO [Server] Starting JBoss (MX MicroKernel)... [...] 14:52:22,571 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name 'java:DefaultDS' [...] 14:52:23,664 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA' [B]14:52:23,763 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=PostgresDS' to JNDI name 'java:PostgresDS'[/B] [...] 14:52:31,313 INFO [STDOUT] 2008-09-21 14:52:31,311 DEBUG (org.springframework.beans.factory.support.DefaultListableBeanFactory:447) - Retrieved dependent beans for bean 'org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0': [org.springframework.transaction.config.internalTransactionAdvisor] 14:52:31,330 INFO [STDOUT] 2008-09-21 14:52:31,317 ERROR (org.springframework.web.context.ContextLoader:215) - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personService': Injection of persistence methods failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is [B]org.springframework.jdbc.datasource.lookup.DataSourceLookupFailureException: Failed to look up JNDI DataSource with name 'java:/PostgresDS'; nested exception is javax.naming.NameNotFoundException: JNDI object with [java:/PostgresDS] not found:[/B] JNDI implementation returned null at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:324) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:998) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) ...
Meine persistence.xml:
Code xml: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
<?xml version="1.0" encoding="UTF-8"?> <persistence 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_1_0.xsd" version="1.0"> <persistence-unit name="HouseMan" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <!-- <non-jta-data-source>java:/PostgresDS</non-jta-data-source> --> <jta-data-source>java:/PostgresDS</jta-data-source> <class>net.magiccode.houseman.model.User</class> <class>net.magiccode.houseman.model.Right</class> <class>net.magiccode.houseman.model.UserGroup</class> <class>net.magiccode.houseman.model.BankAccount</class> <class>net.magiccode.houseman.model.Person</class> <class>net.magiccode.houseman.model.Address</class> <class>net.magiccode.houseman.model.RentalObject</class> <class>net.magiccode.houseman.i18n.Language</class> <class>net.magiccode.houseman.i18n.I18nText</class> <class>net.magiccode.houseman.i18n.MultiLingualText</class> <class>net.magiccode.houseman.i18n.LanguageFactory</class> <properties> <property name="jboss.entity.manager.factory.jndi.name" value="persistence-units/JpaPersistence"/> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" /> <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/houseman" /> <property name="hibernate.connection.username" value="volker" /> <property name="hibernate.connection.password" value="abulafia" /> <property name="hibernate.archive.autodetection" value="class" /> <property name="hibernate.default_schema" value="public" /> <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.DefaultComponentSafeNamingStrategy"/> <property name="hibernate.archive.autodetection" value="class"/> <property name="hibernate.hbm2ddl.auto" value="read-write" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
Meine applicationContext.xml
Code xml: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
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" [url]http://www.springframework.org/schema/beans[/url] [url]http://www.springframework.org/schema/beans/spring-beans-2.0.xsd[/url] [url]http://www.springframework.org/schema/tx[/url] [url]http://www.springframework.org/schema/tx/spring-tx-2.0.xsd[/url] [url]http://www.springframework.org/schema/aop[/url] http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> <bean id="personService" class="net.magiccode.houseman.service.PersonServiceImpl" /> <bean id="userService" class="net.magiccode.houseman.service.UserServiceImpl" /> <bean id="rightService" class="net.magiccode.houseman.service.RightServiceImpl" /> <bean id="groupService" class="net.magiccode.houseman.service.GroupServiceImpl" /> <bean id="languageService" class="net.magiccode.houseman.service.LanguageServiceImpl" /> <bean id="i18nTextService" class="net.magiccode.houseman.service.I18nTextServiceImpl" /> <bean id="RentalObjectService" class="net.magiccode.houseman.service.RentalObjectServiceImpl" /> <bean id="LanguageFactory" class="net.magiccode.houseman.i18n.LanguageFactory" /> <bean id="personAction" scope="prototype" class="net.magiccode.houseman.action.PersonAction"> <constructor-arg ref="personService" /> </bean> <bean id="languageAction" scope="prototype" class="net.magiccode.houseman.action.LanguageAction"> <constructor-arg ref="languageService" /> </bean> <bean id="userAction" scope="prototype" class="net.magiccode.houseman.action.UserAction"> <constructor-arg ref="userService" /> </bean> <bean id="rightsAction" scope="prototype" class="net.magiccode.houseman.action.RightsAction"> <constructor-arg ref="rightService" /> </bean> <bean id="groupAction" scope="prototype" class="net.magiccode.houseman.action.GroupAction"> <constructor-arg ref="groupService" /> </bean> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceUnitName" value="HouseMan" /> <property name="jpaProperties"> <props> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> </props> </property> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="database" value="POSTGRESQL" /> <property name="showSql" value="true" /> <property name="generateDdl" value="true" /> </bean> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.postgresql.Driver" /> <property name="url" value="jdbc:postgresql://localhost/houseman" /> <property name="username" value="volker" /> <property name="password" value="********" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> </beans>
Geändert von Oliver Gierke (21.09.08 um 17:30 Uhr) Grund: Codetags spendiert, Stacktrace auf relevanten Teil eingekürzt, DB Passwort enfernt
-
21.09.08 16:47 #2
Mal abgesehen davon, dass du logischerweise ALLE Springbibliotheken inder gleichen Version verwenden solltest, könnte die Excepton nicht sprechender sein: unter dem Namen den du für die Datasource konfiguriert hast, gibt es im JNDI keine DataSource.
Kann es sein, dass du eigentlich die in der Springkonfiguration hinterlegte DataSource benutzen möchtest und gar keinen JNDI Loookup benötigst? In der Hibernatekonfig ist allerdings noch ein jta-data-source Element vorhanden, was vermutlich den Lookup provoziert.
Gruß
OllieIn theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
Hallo Oliver,
erstmal vielen Dank für die schnelle Antwort. Ich muß zugeben, ich stehe hier etwas auf dem Schlauch
JBoss sagt doch "Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=PostgresDS' to JNDI name 'java:PostgresDS'"
Wieso gibt es die im JNDI dann nicht ?
Ich möchte natürlich die in der Springkonfiguration hinterlegte DataSource nutzen, aber funktionieren dann die Annotations von Hibernate noch ? Könntest Du mir bitte eine kurze Erklärung liefern, die mir weiterhilft ?
Zu den Bibliotheken: Ich habe die im Maven-Repository vorhandenen Versionen benutzt. Da wo's keine 2.5.5 gab, habe ich die entsprechend letzte (2.5.3) genommen.....
-
21.09.08 17:23 #4
Du referenzierst aber eine java:/PostgresDS.
Dafür definierst du doch eine LocalContainerEntityManagerFactoryBean. Frage - hast du die Spring JPA Doku gelesen?Ich möchte natürlich die in der Springkonfiguration hinterlegte DataSource nutzen, aber funktionieren dann die Annotations von Hibernate noch ? Könntest Du mir bitte eine kurze Erklärung liefern, die mir weiterhilft ?
. Durch die Umfangreiche Konfiguration in der persistence.xml wirfst du halt zwei Konfigurationsmodelle durcheinander. Zugegebenermaßen würde ich da auch nicht mehr wirklich durchsehen, was wo wie benutzt wird.
Ich kann es nicht 100%ig sagen, aber ich vermute, dass Spring selbst schon die DataSource benutzt die du da konfiguriert hast (Tipp: besser SimpleDriverDataSource benutzen). Der JBoss wertet die persistence.xml vermutlich ein zweites Mal aus, deswegen der Lookup.
Im zentralen Maven Repo (http://repo1.maven.org/maven2) sind alle Springbibliotheken in Version 2.5.5 vorhanden: z.B. http://repo1.maven.org/maven2/org/sp...g-beans/2.5.5/Zu den Bibliotheken: Ich habe die im Maven-Repository vorhandenen Versionen benutzt. Da wo's keine 2.5.5 gab, habe ich die entsprechend letzte (2.5.3) genommen.....
REINHAUN!In theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
Hallo Oliver,
danke, manchmal braucht man jemand, der einen mit der Nase draufdrückt, wenn man den Wald vor lauter Bäumen nicht mehr sieht.
Hab's jetzt verstanden, jetzt läuft's auch. Danke nochmal.
Übrigens: spring-beans kam in meiner pom.xml gar nicht vor. War wohl 'ne Abhängigkeit..
Ist aber auch gerade gezogen
-
21.09.08 18:47 #6
Jap, das passiert schnell, wenn man nicht aufpasst. Man bindet selbst nur 3 Spring Libs in Version X ein. Allerdings dann noch eine andere Lib, die andere Spring Libs in version X - 1 benötigt. Dann kommt man nicht umhin explizit die genaue Version anzugeben. Dumm, muss aber leider sein.
REINHAUN!In theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
Ähnliche Themen
-
Spring mit Annotations
Von Looky im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 07.10.10, 13:19 -
[Problem] Spring MVC mit Annotations
Von Wyatt im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 24.02.10, 16:31 -
Hibernate Annotations
Von drezze im Forum JavaAntworten: 0Letzter Beitrag: 28.11.08, 08:36 -
Spring Dependency Injection - XML oder Annotations?
Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 5Letzter Beitrag: 22.09.08, 19:07 -
EJB Deploynment with JBoss and use of annotations fails
Von AnetaGueogui im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 22.06.07, 13:39





Zitieren
Login




