2013-06-20 61 views
1

我試圖從https://developer.help.rallydev.com/java-toolkit-rally-rest-api創建缺陷的例子時。Rlly - API REST JAVA - 的NullPointerException創建新請求

我用拉力賽REST的API-1.0.7.jar和我設置WsapiVersion 1.33(我的服務器支持此版本)。

結果我得到:

Creating defect... 
Close rest api 
java.lang.NullPointerException 
Exceptioon 
    at com.rallydev.rest.RallyRestApi.attachSecurityInfo(RallyRestApi.java:383) 
    at com.rallydev.rest.RallyRestApi.doSecurityEnableRequest(RallyRestApi.java:360) 
    at com.rallydev.rest.RallyRestApi.doPost(RallyRestApi.java:425) 
    at com.rallydev.rest.RallyRestApi.create(RallyRestApi.java:169) 
    at com.rallydev.rest.RallyRestApi.create(RallyRestApi.java:165) 
    at com.****.rally.TestCaseResultAppender.newDefect(TestCaseResultAppender.java:43) 
    at com.****.rally.TestCaseResultAppenderTest.testNewDefect(TestCaseResultAppenderTest.java:36) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) 
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:300) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 

有誰還惹上麻煩與和解決的呢?

回答

1

的問題是,該工具包試圖連接的版本WSAPI 2.0+即使您正在使用1.x中需要一些額外的安全信息我猜你可能是一個內部客戶,你的服務器不支持該工具包試圖使用的端點。

這絕對是一個缺陷。現在降級到1.0.6解決了這個問題? 我會提交一個缺陷以糾正此問題,並在此時進行報告。

你也可以簡單地創建延伸RallyRestApi和一個空操作,因爲這不是在1.x的WSAPI需要替換attachSecurityInfo方法的類:

public class RallyRestApi1x extends RallyRestApi { 
    protected void attachSecurityInfo(HttpRequestBase request) throws IOException, URISyntaxException { 
     //no op 
    } 
} 

,然後只用這個類,而不是RallyRestApi。

+0

我已經試過使用版本1.0.6,但它獲得相同的結果。今天晚些時候我會嘗試使用這個解決方案。 –

+0

它的工作原理。謝謝 –