我有螞蟻執行一個罐子用下面的代碼傳遞Java系統屬性以螞蟻測試
<target name="start.my.jar" description="start my jar">
<echo message="Starting the jar" />
<java jar="${jars.dir}/${my.stub.jar}" fork="true" dir="${jars.dir}" spawn="true">
<sysproperty key="properties.filename" value="${basedir}/path/path/path/filename.properties"/>
<arg value="start" />
</java>
</target>
罐內部有一個與下面的代碼的類
public static MyFacade createFacade() throws FileNotFoundException, IOException {
return createFacade(System.getProperty(properties.filename));
}
,然後有螞蟻測試目標是這樣配置的
<target name="test" depends="compile, support" description="perform unit tests">
<mkdir dir="${build.test}" />
<mkdir dir="${test-classes.dir}" />
<javac srcdir="${build.test}" destdir="${test-classes.dir}" debug="${debug}" nowarn="${nowarn}" includeantruntime="false" deprecation="${deprecation}">
<classpath refid="main.classpath" />
</javac>
<junit printsummary="yes" haltonfailure="yes" showoutput="true" dir="${test-classes.dir}" fork="true" forkmode="perBatch" failureproperty="junit.failure" errorproperty="junit.error" haltonerror="no">
<jvmarg value="-Xmx1G" />
<jvmarg value="-Dcom.sun.management.jmxremote" />
<classpath>
<pathelement location="${test-classes.dir}" />
<pathelement location="${classes.dir}" />
<!--
For module restful_api
-->
<pathelement location="${build.deploy}" />
<pathelement location="${classes.dir}" />
<fileset dir="${build.lib}">
<include name="*.jar" />
</fileset>
</classpath>
<formatter type="plain" />
<batchtest fork="yes" todir="${build.test}">
<fileset dir="${build.test}">
<include name="**/*AllTests.java" />
<include name="**/*TestCase.java" />
</fileset>
</batchtest>
</junit>
<fail message="Unittest failures - please check" if="junit.failure" />
<fail message="Unittest errors - please check" if="junit.error" />
</target>
我在這個測試目標模塊中的測試無法獲得屬性對於我在start.my.jar目標中指定的文件。有什麼我做錯了嗎?
SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
[junit] java.lang.NullPointerException
[junit] at java.io.File.<init>(File.java:222)
[junit] at com.mycompany.myproduct.sdk.facade.MyFacadeFactory.getInputStream(MyFacadeFactory.java:47)
[junit] at com.mycompany.myproduct.sdk.facade.MyFacadeFactory.loadFacade(MyFacadeFactory.java:43)
[junit] at com.mycompany.myproduct.sdk.facade.MyFacadeFactory.createFacade(MyFacadeFactory.java:32)
[junit] at com.mycompany.myproduct.sdk.facade.MyFacadeFactory.createFacade(MyFacadeFactory.java:28)
[junit] at com.mycompany.myproduct.sdk.resources.impl.TransactionResourceImpl.<init>(TransactionResourceImpl.java:70)
[junit] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[junit] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
[junit] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
[junit] at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
[junit] at com.sun.jersey.server.spi.component.ResourceComponentConstructor._construct(ResourceComponentConstructor.java:191)
嘗試返回createFacade(System.getProperty( 「properties.filename」)); – user1097489
我犯了一個錯誤,它實際上是properties.filename,但仍然不起作用 – ThaSaleni
你可以發佈stacktrace嗎? – user1097489