Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

probleem met Ant, JUnit en RMI

Pagina: 1
Acties:

  • Meijuh
  • Registratie: December 2006
  • Laatst online: 17-03 21:08
Ik zit met het volgende probleem, allereerst heb ik de volgende build.xml.

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
<project name="Banking" basedir=".">
    <property name="src.dir"     value="src" />
    <property name="web.dir"     value="web" />
    <property name="classes.dir" value="web/WEB-INF/classes" />
    <!-- <property name="war.dir"     value="/Library/Tomcat/Home/webapps/" /> -->
    <property name="war.dir"     value="C:\apache-tomcat-6.0.26\webapps" />
    
    <target name="clean">
        <delete dir="${classes.dir}"/>
        <delete dir="${war.dir}/${ant.project.name}"/>
        <delete file="${war.dir}/${ant.project.name}.war"/>
    </target>
    
    <!-- target start_registry: start the RMI registry -->
    <target name="start_registry">
        <exec executable="rmiregistry" spawn="true">
        </exec>
    </target>
    
    <target name="compile" depends="start_registry">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}"/>
    </target>
    
    <target name="war" depends="compile">
        <mkdir dir="${war.dir}"/>
        <jar destfile="${war.dir}/${ant.project.name}.war" basedir="${web.dir}">
        </jar>
    </target>   
    
    <target name="junit" depends="war">     
        <junit printsummary="yes" fork="yes" haltonfailure="yes">
            <classpath>
                <pathelement location="${classes.dir}"/>
            </classpath>
            <formatter type="plain"/>
            <test name="test.ConcreteAuthenticationTest" haltonfailure="no" outfile="ConcreteAuthenticationTest"/>
            <test name="test.ConcreteTransactionTest" haltonfailure="no" outfile="ConcreteTransactionTest"/>
            <test name="test.ConcreteDataAccessTest" haltonfailure="no" outfile="ConcreteDataAccessTest"/>
            <test name="test.Registry007Test" haltonfailure="no" outfile="Registry007Test"/>
            <test name="test.RMIServerTest" haltonfailure="no" outfile="RMIServerTest"/>
        </junit>
    </target>
</project>


Het probleem zit hem in:

code:
1
<test name="test.RMIServerTest" haltonfailure="no" outfile="RMIServerTest"/>

Als JUnit deze test uitvoert, krijg ik de volgende exception:
code:
1
2
3
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
    java.lang.ClassNotFoundException: beans.banking.Transaction


Dit betekent dus dat mijn klasse beans.banking.Transaction niet gevonden kan worden.
Ik heb gevonden op internet dat ik een codebase moet toevoegen, in de vorm van:

code:
1
<jvmarg value="-Djava.rmi.server.codebase=${een of andere url}" />


Maar volgens mij kan ik een jvmarg niet toevoegen aan een junit commando. Ik krijg telkens die foutmelding, heeft iemand enig idee hoe ik deze fout met JUnit kan oplossen?

Asus EN8800GTS, Asus P5E, Intel E8400, 2x500gb Spinpoint (raid0), Zalman HP 600 watt, cnps 9500 led, creative xfi music, 4x1gb hyperX PC2 8500


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 21-11 11:06

Macros

I'm watching...

Ik weet niet precies waarom je die ClassNotFoundExceptions krijgt en hoe je dat kan oplossen. Maar lijkt mij dat de compile task geen dependency op start_registry moet hebben, maar alleen je junit task.

"Beauty is the ultimate defence against complexity." David Gelernter