2011-08-11 3 views
2

J'ai un projet exécuté sur Tomcat dans Eclipse WTP qui se déploie avec certaines entités JPA. Je voudrais activer ChangeTracking sur ces entités, mais cela nécessite d'activer le tissage. Puisque Tomcat ne permet pas le tissage dynamique, je dois le faire avec un tissage statique.Tissage statique pour EclipseLink avec WTP Eclipse

Est-ce possible? Le plugin Dali d'Eclipse ne semble pas avoir de facilité pour le tissage statique.

Répondre

2

Oui, très possible Je le fais tout le temps. Aussi j'utilise Jetty (J2EE Preview) dans Eclipse WTP c'est très rapide et fonctionne bien, sur le tissage cependant. Faire un fichier weave.xml cette fourmi peut traiter comme ceci:

<?xml version="1.0"?> 
<project name="MyProject" default="weaving" basedir="."> 
    <property environment="env"/> 

    <path id="weavingclasspath"> 
     <fileset dir="${basedir}\\web\\WEB-INF\\lib"> 
     <include name="**/*.jar"/> 
     </fileset> 
     <fileset dir="${basedir}\\antlib"> 
     <include name="**/*.jar"/> 
     </fileset> 
     <pathelement location="classes"/> 
     <dirset dir="${basedir}\\build"> 
     <include name="**/classes"/> 
     </dirset> 
    </path> 


    <target name="define.task" description="New task definition for EclipseLink static weaving" > 
     <taskdef name="weave" classname="org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask"> 
     <classpath refid="weavingclasspath"/> 
     </taskdef> 
    </target> 

    <target name="weaving" description="perform weaving" depends="define.task"> 
     <weave loglevel="WARNING" source="${basedir}\\build\\classes\\" target="${basedir}\\build\\classes\\"> 
    <classpath refid="weavingclasspath"/> 
    </weave> 
    </target> 

</project> 

Mettre cela dans la racine de votre projet et exécuter comme une tâche Ant. Assurez-vous de rafraîchir votre projet une fois terminé puisque tous les fichiers .class de vos entités seront tissés. Je lie réellement cette tâche au processus de construction eclipse, donc c'est automatique. Vous devrez peut-être modifier certains des chemins de fichier dans le script ant pour votre projet afin de le faire fonctionner, mais vous devriez avoir l'idée. Mon antlib a servlet.jar dedans (je ne me souviens pas pourquoi) et mon WEB-INF/lib a tous mes pots de projet Web aussi bien qu'eclipselink.

Questions connexes