i'm running issue when trying use teamcity build project.
in project have folder src/resource/ contains sub folders of queries. have helper function reads in file resource using ioutils:
public static string loadresourcetostring(final string path) { final inputstream stream = thread.currentthread().getcontextclassloader().getresourceasstream(path); try { return ioutils.tostring(stream); } catch (final ioexception e) { throw new illegalstateexception(e); } { ioutils.closequietly(stream); } } this code works on local machine, , when use mvn package build jar. when try build same code through teamcity fails, throwing nullpointerexception:
java.lang.nullpointerexception @ java.io.reader.<init>(reader.java:78) @ java.io.inputstreamreader.<init>(inputstreamreader.java:72) @ org.apache.commons.io.ioutils.copy(ioutils.java:1049) @ org.apache.commons.io.ioutils.tostring(ioutils.java:359) @ com.company.util.apputil.loadresourcetostring(apputil.java:255) @ com.company.data.userdata.registerstatements(userdata.java:27) @ com.company.web.data.data.<init>(data.java:39) @ com.company.data.userdata.<init>(userdata.java:22) @ com.company.data.usertest.getalldivisions(usertest.java:76) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ org.junit.runners.model.frameworkmethod$1.runreflectivecall(frameworkmethod.java:47) @ org.junit.internal.runners.model.reflectivecallable.run(reflectivecallable.java:12) @ org.junit.runners.model.frameworkmethod.invokeexplosively(frameworkmethod.java:44) @ org.junit.internal.runners.statements.invokemethod.evaluate(invokemethod.java:17) @ org.junit.runners.parentrunner.runleaf(parentrunner.java:271) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:70) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:50) @ org.junit.runners.parentrunner$3.run(parentrunner.java:238) @ org.junit.runners.parentrunner$1.schedule(parentrunner.java:63) @ org.junit.runners.parentrunner.runchildren(parentrunner.java:236) @ org.junit.runners.parentrunner.access$000(parentrunner.java:53) @ org.junit.runners.parentrunner$2.evaluate(parentrunner.java:229) @ org.junit.runners.parentrunner.run(parentrunner.java:309) @ org.apache.maven.surefire.junit4.junit4testset.execute(junit4testset.java:53) @ org.apache.maven.surefire.junit4.junit4provider.executetestset(junit4provider.java:123) @ org.apache.maven.surefire.junit4.junit4provider.invoke(junit4provider.java:104) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ org.apache.maven.surefire.util.reflectionutils.invokemethodwitharray(reflectionutils.java:164) @ org.apache.maven.surefire.booter.providerfactory$providerproxy.invoke(providerfactory.java:110) @ org.apache.maven.surefire.booter.surefirestarter.invokeprovider(surefirestarter.java:175) @ org.apache.maven.surefire.booter.surefirestarter.runsuitesinprocesswhenforked(surefirestarter.java:107) @ org.apache.maven.surefire.booter.forkedbooter.main(forkedbooter.java:68) the way call class is:
apputil.loadresourcetostring("queries/getlist_by_id.sql")
okay problem way had project set up.
i had resource folder under src/, when moved /src/main , set testresource directory using:
<testresources> <testresource> <directory>src/main/resource</directory> </testresource> </testresources> under build worked perfectly.
Comments
Post a Comment