Static Weaving in Netbeans IDE ?

J2EE, JSP, JSF, VisualWeb-Pack usw.

Moderator: wegus

salocinx
Beiträge: 2
Registriert: 09.05.2012, 09:52

Static Weaving in Netbeans IDE ?

Beitragvon salocinx » 09.05.2012, 11:05

Hallo zusammen. Ich verwende Netbeans IDE 7.1.1 und den Glassfish 3.1.2 Server. Als JPA provider verwende ich eclipse-link 2.3.0 welcher ja in Netbeans und dem neuen Glassfish Server als Bibliothek integriert ist. Meine Lösung besteht aus 3 Projekten:

- Java EE Applikation mit EJB: Session Beans und Fassaden für den Zugriff auf die Datenbank
- Java Class Library: hier befinden sich alle @Entity bean Klassen welche von dem EJB-Projekt und dem Client referenziert wird
- Java Client Applikation: referenziert ebenfalls die Class Library und beinhaltet alle GUI Swing Klassen, Lookup der EJB's mittels JNDI

Die @Entity-Klassen in der Class Libray werden nun von der Datenbank, über den Glassfish Server an den Client übertragen und vom Client wieder zurück in die Datenbank.

Ich habe mich für fetchtype.LAZY entschieden, da ansonsten bei kleinen Abfragen die ganze Datenbank an den Client übertragen würde. Nun, für lazy fetching müssen die @Entity-Klassen zuerst von eclipse-link gewoben werden (weaving).

Ich habe versucht, die folgende Anleitung umzusetzen, leider ohne Erfolg: http://wiki.eclipse.org/EclipseLink/Use ... ic_Weaving

Dazu habe ich das build-impl.xml für das Class Library Project wie folgt angepasst:

Code: Alles auswählen

<target name="-post-jar" description="New task definition for EclipseLink static weaving">
    <taskdef name="weave" classname="org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask"/>
</target>
<target name="weaving" description="perform weaving" depends="-post-jar">
    <weave  source="${dist.jar}\MyProject.jar"
            target="${dist.jar}\MyProject_Weaved.jar"
            persistenceinfo="${dist.jar}..\..\MyProjectEE\MyProject-ejb\build\classes\META-INF\persistence.xml"
            loglevel="FINER">
        <classpath>
            <pathelement path="${dist.jar}\lib\eclipselink-2.3.0.jar"/>
            <pathelement path="${dist.jar}\lib\javaee-api-6.0.jar"/>
            <pathelement path="${dist.jar}\lib\jasypt-1.9.0.jar"/>
            <pathelement path="${dist.jar}\lib\javax.persistence-2.0.jar"/>
            <pathelement path="${dist.jar}\lib\org.eclipse.persistence.jpa.jpql_1.0.0.jar"/>
            <pathelement path="${dist.jar}\lib\joda-time-2.1.jar"/>
            <pathelement path="${dist.jar}\lib\jms.jar"/>
        </classpath>
    </weave>
</target>


Wenn ich nun auf "Clean & Build" in Netbeans drücke, erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

D:\workspace\MyProject\nbproject\build-impl.xml:703: taskdef class org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask cannot be found
using the classloader AntClassLoader[]


Was mache ich hier falsch? Kann mir jemand weiterhelfen?

Besten Dank im voraus!

Benutzeravatar
nigjo
Beiträge: 595
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Static Weaving in Netbeans IDE ?

Beitragvon nigjo » 09.05.2012, 14:40

salocinx hat geschrieben:Was mache ich hier falsch?
  1. Du solltest nie die build-impl.xml bearbeiten. Diese wird von NetBeans verwaltet und schon mal gerne einfach so überschrieben. Das ist so gewollt und auch gut so. Für eigene Erweiterungen und targets ist die build.xml im Projektverzeichnis vorgesehen.
  2. Du versuchst eine Eclipse Klasse in NetBeans zu benutzen. Damit kann NetBeans bzw. Ant natürlich nicht einfach so etwas anfangen. In deinem "taskdef" Task musst du ihm auch den "classpath" in dem er die Klasse suchen soll angeben.(und nicht erst in "weave")

Gruß
Jens

ps: Du kannst duchaus das in der Anleitung verwendeten "define.task"-Target verwenden statt "-post-jar" zu missbrauchen. Die vollständige Liste, welche Targets zum Überschreiben da sind steht in der build.xml deines Projekts.
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

salocinx
Beiträge: 2
Registriert: 09.05.2012, 09:52

Re: Static Weaving in Netbeans IDE ?

Beitragvon salocinx » 10.05.2012, 17:24

Hallo Jens - du bist meine Rettung, besten Dank für deinen Rat!

Falls es sonst noch wer interessiert:

Denn classpath konnte ich gleich dem <taskdef name="..." classname="..." classpath="..."> tag mitgeben, einfach klasse :-) Im Solution Explorer hab ich dann den "weave" task rechts-geklickt und nen Tasten-Shortcut kreiert.

Besten Dank Jens!


Zurück zu „NetBeans - Enterprise“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast