2017-01-30 6 views
4

Apple Reporter.jarを統合してアプリの売上レポートをダウンロードしていますが、引数が少なすぎたり多すぎたりすると不平を言います。私はSales.getHelpを呼び出すことが私に語ったときApple Reporter Sales.getReportメソッドに指定されているパラメータが多すぎるか少なすぎる

Too few or too many parameters specified for the method. Call ApplicationName.getHelp for a list of valid methods and their parameters.

のparamsは次のようになります。私はSales.getReportコマンドを実行したい場合は

Usage: java -jar Reporter.jar p=[properties file] m=["Normal"|"Robot.XML"] a=[account number] Sales.[command] [arguments] 
where commands include: 
    getHelp: Returns this help message. No arguments. 
    getStatus: Returns status of Sales and Trends application. No arguments. 
    getAccounts: Returns list of available accounts. No arguments. 
    getVendors: Returns list of available vendor numbers. No arguments. 
    getReport: Downloads a report. Arguments: Vendor Number, Report Type, Report Subtype, DateType, Date. 

そう、私が次のparamsが必要であることを表示されます。

java -jar Reporter.jar p=[properties file] m=["Normal"|"Robot.XML"] a=[account number] Sales.getReport Vendor_Number Report_Type Report_Subtype DateType Date

これは私が使用したコマンドです(実際のアカウントnアンバーと私はレポーターを経て得たベンダー番号):

java -jar Reporter.jar p=Reporter.properties m="Normal" a="XXXXXX" Sales.getReport YYYYYYY Sales Summary Daily 20170130

は、私の知る限り、それらのすべてが正しく一致:

1) java -jar Reporter.jar | java -jar Reporter.jar 
2) p=[properties file] | p=Reporter.properties 
3) m=["Normal"|"Robot.XML"] | m="Normal" 
4) a=[account number] | a="XXXXXX" 
5) Sales.getReport | Sales.getReport 
6) Vendor_Number | YYYYYYY 
7) Report_Type | Sales 
8) Report_Subtype | Summary 
9) DateType | Daily 
10) Date | 20170130 

を私は上の余分なasdfを追加してみましたもう1つのパラメータが必要かどうかを確認するために終了しますが、同じメッセージが表示されます。それから、私はparamsを削除しようとしましたが、それはSales.getReportを削除するまで、同じエラーメッセージを表示しました。

何か間違っているのですか、エラーメッセージが完全に間違っている/役に立たないのですか?

+0

あなたが掲示して他にも気をつけてください。 – Hasya

答えて

3

Appleのエンジニアが作成したものであれば、Reporter.jarを起動する必要があります。

問題はコマンドラインパラメータの間にCOMMASを置く必要があることでした。コマンドラインの使用履歴の中で、他のコマンドラインの使用はまったく同様です。 Sales.getReportの後のすべてがコードによって荒らされ、1つの文字列にまとめられ、次にコンマで分割され、次にそれがパラメータをチェックするだけであるように見えます。

私はただ1つの文字列として"YYYYYYY Sales Summary Daily 20170130"を送信してみましたので、単一のコマンドライン引数が必要だとの仮説をテストしましたが、うまくいきませんでした。ここで

は最終的に私のために働いていたコマンドです:

java -jar Reporter.jar p=Reporter.properties m="Normal" a="XXXXXX" Sales.getReport YYYYY, Sales, Summary, Daily, 20170129

私は、彼らがこれを設計したときに、これらのアップルのエンジニアは考えていたが、彼らは解雇すべきか見当がつかない。私は、アップルのエンジニアが最善を尽くすと期待していますが、これはすべての標準的なコマンドラインの実践に無知で無知です。 </rant>

+0

そして、彼らはJSONの代わりにXMLを使うという大胆さを持っていました。ちょうど...真剣に、何? –

関連する問題