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):
Meine persistence.xml:
Meine applicationContext.xml
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:
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'
14:52:23,763 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=PostgresDS' to JNDI name 'java:PostgresDS'
[...]
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 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: 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:
XML:
<?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
XML:
<?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="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop 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>
Zuletzt bearbeitet von einem Moderator: