2015-11-02 128 views
0

在我的redhat 5 RoR中,我有一個調用jar來從另一個系統中調用xml的命令。 IRB:Ruby命令不返回期望值

2.1.5 :005 > %x(java -jar ./GENTESTResult.jar -action=status -user="tester" -password="tester" -job_id="12324") 
<?xml version="1.0"?><cliout action="status" request_id="1446456310693_54" > 
<action_status>ERROR</action_status> 
<action_status_detail>Given job not found.</action_status_detail><job id="12324"/> 
</cliout> 
=> "" 

2.1.5 :006 > %x(java -jar ./GENTESTResult.jar -action=status -user="tester" -password="tester" -job_id="5192782") 
=> "<?xml version=\"1.0\"?><cliout action=\"status\" request_id=\"1446456368168_11\" >\n<action_status>SUCCESS</action_status><action_status_detail>Job has been processed successfully.</action_status_detail><job id=\"5192782\" status=\"Failed\" >\n...(stop paste) 

第一作業ID 「12324」 是不存在的。第二個作業ID 5192782是一個有效的ID。 我沒有問題,在工作中5192782. 但對於工作「12324」,我的Ruby代碼

@lines = %x(java -jar ./GENTESTResult.jar -action=status -user="tester" -password="tester" -job_id="12324") 

給我空字符串。但我真的需要從結果關鍵部分是這樣的xml

<?xml version="1.0"?><cliout action="status" request_id="1446456310693_54" > 
    <action_status>ERROR</action_status> 
    <action_status_detail>Given job not found.</action_status_detail><job id="12324"/> 
    </cliout> 

我怎樣才能得到字符串?先謝謝你。

回答