public class ReverseList extends HttpServlet {
public static void sort(int arr[]) {
int N = arr.length;
int i, j, temp;
for (i = 1; i< N; i++) {
j = i;
temp = arr[i];
while (j > 0 && temp < arr[j-1]) {
arr[j] = arr[j-1];
j = j-1;
}
arr[j] = temp;
}
}
private void doService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
String jsonStr = "";
if(br != null){
jsonStr = br.readLine();
}
StringReader strReader = new StringReader(jsonStr);
JsonReader reader = Json.createReader(strReader);
JsonObject obj = reader.readObject();
JsonArray inArray = obj.getJsonArray("inList");
int data [];
for (int i = 0; i > inArray.size(); i++) {
data = new int[inArray.getInt(i)];
}
long startTime = System.currentTimeMillis();
this.sort(data);
long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime;
JsonArrayBuilder outArrayBuilder = Json.createArrayBuilder();
for(int i = 0; i<data.length; i++) {
outArrayBuilder.add(data[i]);
}
response.setContentType("application/json");
PrintWriter out = response.getWriter();
out.println("{ \"outList\" : " + outArrayBuilder.build().toString()+"\n");
out.println("algorithim: Insertion Sort\n Execution time:"+ elapsedTime+"}");
}
}
JSON配列をint []に変換しようとしていますが、int []をソートして、ソートを実行した時間とともにJSONとして出力しています。私が受け取っているエラーは、NullPointerExceptionです。JSONで挿入を使用するときに問題が発生する
java.lang.NullPointerException
csi403.ReverseList.sort(ReverseList.java:23)
csi403.ReverseList.doService(ReverseList.java:99)
csi403.ReverseList.doPost(ReverseList.java:44)
サーブレットを初めて使用していますが、エラーの修正やコンパイルを効率的に行う方法がありません。私はAmazon Web Services-Elastic Beanstalk、Postman、およびmavenの組み合わせを使用してHTTPエンドポイントを作成しています。だから、問題は二重です。このエラーが発生するのはなぜですか?そして、このコードをコンパイルして訂正する簡単な方法があります。私はcURLと呼ばれるツールについて聞いたことがありますが、私が今やっていることとどのように違うのかは分かりません。どんな助けもありがとう!
あなたは[mcve];たとえば、これをローカルで実行しようとします。 jsonでコードを読み込んで、それをソートしてください。 **ローカル**マシンでのJSONの解析、並べ替えが完璧に機能することを110%確かめるまで、複雑さを増す他のすべてのことについては忘れてください。 – GhostCat
stacktraceは例外がどこにあるかを示します。ご質問にお答えください –
アドバイスをいただきありがとうございます。私のローカルマシン上のすべてを設定する方法を学ぶために私が使用するリソースをお勧めできますか?私はこれに似た割り当てをもっとしていきます。あなたが提案していることは、私の問題の完璧な解決策のようです。 –