2016-05-25 12 views
1

JIRAからJira Rest APIを通じて問題を取得しようとしています。私がカールを使用するときは問題ありません。私は問題を抱えています。問題は、私はJavaコード(これはいくつかの小さな変更を加えてmaven変更プラグインを使用します)でこれを行いたいのですが、プラグインは問題を見つけられません。私は200ステータスレスポンスを得ますが、レスポンスには問題はありません。これは私のカールであるWebClient - Jira rest api、予期しない結果がある

{"startAt":0,"maxResults":50,"total":0,"issues":[]} 

WebClient client = setupWebClient(jiraUrl); 
    doSessionAuth(client); 
    client.replacePath("/rest/api/2/search"); 
    client.type(MediaType.APPLICATION_JSON_TYPE); 
    client.accept(MediaType.APPLICATION_JSON_TYPE); 
    client.query("key", "<Issue-key>"); 
    Response res = client.get(); 

これは私にこのJSONで200応答を与える:ここで

は、(認証がセットアップで行われている)は、Javaコードからの抜粋です

curl -u user:password -X GET -H "Content-Type:application/json" https://bankid.atlassian.net/rest/api/2/search?key=<Issue-key>&maxResults=10 

また、私はPOSTとJSONを使って試してみましたクエリ:

WebClient client = setupWebClient(jiraUrl); 
doSessionAuth(client); 

String jqlQuery = new JqlQueryBuilder(log).urlEncode(false).filter(filter).build(); 

StringWriter searchParamStringWriter = new StringWriter() 
JsonGenerator gen = jsonFactory.createGenerator(searchParamStringWriter); 
gen.writeStartObject(); 
gen.writeStringField("jql", jqlQuery); 
gen.writeNumberField("maxResults", nbEntriesMax); 
gen.writeArrayFieldStart("fields"); 
gen.writeString("*all"); 
gen.writeEndArray(); 
gen.writeEndObject(); 
gen.close(); 
client.replacePath("/rest/api/2/search"); 
client.type(MediaType.APPLICATION_JSON_TYPE); 
client.accept(MediaType.APPLICATION_JSON_TYPE); 
log.debug("JQL query [" + searchParamStringWriter.toString() + "]"); 
Response searchResponse = client.post(searchParamStringWriter.toString()); 

ここでも同じです。対応するカールは私に予想される結果(1つの問題)を与えますが、これは200の応答を返しますが問題はありません。

私は何が間違っているか分かりません。すべてのポインタ?また、クライアントが要求を送信するパスを正確に見ることができますか(自分の設定に何か問題がないことを確認するため)?私はAPIを読んだが、何も見つけられていない。

答えて

1

REST呼び出しを送信するために使用するApache CXFですか?

一般的に、手動で試すものとコードの動作が異なる場合は、ロギングを有効にして、コードが本当に同じことをするかどうかを比較することができます。

それはすぐにあなたを助けていない場合であっても、これらのログを追加することが有用であり得る:ここで説明する方法ロギングを有効にするにはApache CXFについては

、他の人が問題を見つけやすくするためにここにあなたの質問に。