Comment configurer EclipseLink 2.0 et le Printemps 3.0.5 et Tomcat 6?
Mon application web à l'aide de Tomcat 6.0.18 et le Printemps 3.0.5 et eclipselink 2.0.1 et javax.la persistance 2.0.0, Base de données SQL Server. Je ne pouvais pas comprendre la configuration et également pas en mesure de trouver un exemple de travail avec de telles configurations. J'ai essayé d'ajouter une propriété de loadTimeWeaver en entityManagerFacotory mais il pause Autocâblés annotation au Printemps 3, comme ci-dessous dans applicationContext.xml:
<context:load-time-weaver/>
dans appname-servlet.xml:
Mais quand je désactive LoadTimeWeaver, mon application peut créer une base de données à partir de JPA code, mais ne pouvait pas conserver les données dans la base de données.
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:persistence.xml" />
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="restfulPU" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
<property name="showSql" value="true"/>
<property name="generateDdl" value="true"/>
<property name="databasePlatform" value="org.eclipse.persistence.platform.database.SQLServerPlatform"/>
</bean>
</property>
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect" />
</property>
<property name="jpaPropertyMap">
<props>
<prop key="eclipselink.weaving">false</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
Persistence.xml
<persistence-unit name="restfulPU" transaction-type="RESOURCE_LOCAL">
<class>com.generalform.eclipselink.model.Todo</class>
<properties>
<!-- EclipseLink should create the database schema automatically -->
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
</properties>
Je serai reconnaissant si vous pouvez m'indiquer un guide ou tutoriel sur l'intégration de EclipseLink le Printemps 3 plus de Tomcat.
OriginalL'auteur jisun | 2012-05-02
Vous devez vous connecter pour publier un commentaire.
Merci, Jacques.
Suivantes Springsource de l'orientation au http://static.springsource.org/spring/docs/3.0.0.M4/reference/html/ch13s05.html, Tomcat 6 fonctionne sur le tissage. Les étapes comme mentionné dans le document d'orientation et copié ici:
Étape 1.Copie spring-tomcat-weaver.jar en $CATALINA_HOME/lib, où $CATALINA_HOME représente la racine de l'installation de Tomcat)
Step2. Dire Tomcat à l'utilisation de classloader personnalisé en modifiant context.xml:
Je n'ai pas préciser sur le chemin d'accès et docBase attribut que j'ai mis dans $CATALINA_HOME/conf/context.xml
Step3. Allumez loadTimeWeaver propriété LocalContainerEntityManagerFactorybean
puis, j'ai commencé Tomcat 6 nouveau et de commencer le processus devient propre. Toutefois, les données ne pouvaient toujours pas être conservées dans la base de données. L'erreur est comme ci-dessous:
Pas autorisés à créer de la transaction sur le partage de l'EntityManager - utiliser le Printemps des transactions ou des EJB CMT au lieu
Mon collègue m'a sauvé à ce point en soulignant que le Printemps est la gestion des transactions avec @Transactionnelle et de ne pas utiliser les transactions sur le gestionnaire de l'entité à éviter la question ci-dessus. ensuite, j'ai commenté em.getTransaction().begin() et em.getTransaction().commit(), laissant em.persist(todo). todo est l'entité ici. Il fonctionne immédiatement. Ici, le développeur doit être conscient que la différence entre JPA transaction et le Printemps de la transaction. En fait, c'est une confusion de la partie lors de la EclipseLink/JPA de travail avec le Printemps, la Gestion des Transactions.
J'ai aussi essayé de Tomcat 7 comme je l'avais pensé qu'il pourrait être lié à Tomcat. En fait, cette question n'a rien à voir avec la version de Tomcat.
Avec LoadTimeWeaver activé, Il fonctionne sur la persistance des données. Ici est la version de travail sur la transactionManager configuration de la partie en applicationname-servlet.xml:
Ci-dessous est ma classe Dao, de manière formelle, try/catch doit être enroulé autour du code à l'intérieur de la méthode:
La TodoService classe déclare Printemps Transaction avec @Transactional annotation @Autocâblés travaille également après l'activation de la LoadTimeWeaver:
OriginalL'auteur jisun
Quelle est l'erreur que vous obtenez lorsque vous essayez de conserver?
La LoadTimeWeaver devrait fonctionner, mais il n'est pas nécessaire. Vous pouvez utiliser statique de tissage à la place.
OriginalL'auteur James
Comme un moyen supplémentaire pour @jisun réponse.Je l'ai fait par l'annotation de configuration et de supprimer plus de propriétés telles que nom d'utilisateur,mot de passe,pilote etc.Parce que tous ces paramètres peuvent être de définir dans persistence.xml:
OriginalL'auteur Sarkhan