質問編集履歴

6

追記6

2019/10/01 07:47

投稿

kokok
kokok

スコア145

test CHANGED
File without changes
test CHANGED
@@ -597,3 +597,55 @@
597
597
  でインスタンス化させようとするとエラーになっているようです。
598
598
 
599
599
  調べても解決出来なかったのでアドバイス頂けると助かります。
600
+
601
+
602
+
603
+ --追記6--
604
+
605
+
606
+
607
+ 情報: Server version: Apache Tomcat/7.0.88 [火 10 01 16:43:27 JST 2019]
608
+
609
+ 情報: Server built: May 7 2018 11:12:57 UTC [火 10 01 16:43:27 JST 2019]
610
+
611
+ 情報: Server number: 7.0.88.0 [火 10 01 16:43:27 JST 2019]
612
+
613
+ 情報: OS Name: Windows 8.1 [火 10 01 16:43:27 JST 2019]
614
+
615
+ 情報: OS Version: 6.3 [火 10 01 16:43:27 JST 2019]
616
+
617
+ 情報: Architecture: amd64 [火 10 01 16:43:27 JST 2019]
618
+
619
+ 情報: Java Home: C:\pleiades\java\7\jre [火 10 01 16:43:27 JST 2019]
620
+
621
+ 情報: JVM Version: 1.7.0_80-b15 [火 10 01 16:43:27 JST 2019]
622
+
623
+ 情報: JVM Vendor: Oracle Corporation [火 10 01 16:43:27 JST 2019]
624
+
625
+ 情報: CATALINA_BASE: Dwtp.deploy=C:\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps [火 10 01 16:43:27 JST 2019]
626
+
627
+ 情報: Command line argument: -Djava.endorsed.dirs=C:\pleiades\tomcat\7\endorsed [火 10 01 16:43:27 JST 2019]
628
+
629
+ 情報: Command line argument: -Dfile.encoding=UTF-8 [火 10 01 16:43:27 JST 2019]
630
+
631
+ 情報: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\pleiades\java\7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/pleiades/eclipse/jre/bin/../jre/bin/server;C:/pleiades/eclipse/jre/bin/../jre/bin;C:/pleiades/eclipse/jre/bin/../jre/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\skoga\Program Files (x86)\VMware\VMware vSphere CLI\Perl\site\bin;C:\skoga\Program Files (x86)\VMware\VMware vSphere CLI\Perl\bin;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program \Local\atom\bin;C:\pleiades\eclipse;;. [火 10 01 16:43:27 JST 2019]
632
+
633
+ 情報: サービス Catalina を起動します [火 10 01 16:43:27 JST 2019]
634
+
635
+ 情報: Starting Servlet Engine: Apache Tomcat/7.0.88 [火 10 01 16:43:27 JST 2019]
636
+
637
+ 情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. [火 10 01 16:43:30 JST 2019]
638
+
639
+ 情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. [火 10 01 16:43:32 JST 2019]
640
+
641
+ 情報: Starting ProtocolHandler ["http-bio-8080"] [火 10 01 16:43:32 JST 2019]
642
+
643
+ 情報: Starting ProtocolHandler ["ajp-bio-8009"] [火 10 01 16:43:32 JST 2019]
644
+
645
+ 情報: Server startup in 4651 ms [火 10 01 16:43:32 JST 2019]
646
+
647
+ 重大: Servlet.service() for servlet [servlet.Userlist] in context with path [/webkensyu] threw exception [サーブレットの実行により例外を投げました] with root cause [火 10 01 16:43:35 JST 2019]
648
+
649
+
650
+
651
+ 内部サーバ起動時のコンソール情報

5

追記5

2019/10/01 07:47

投稿

kokok
kokok

スコア145

test CHANGED
File without changes
test CHANGED
@@ -585,3 +585,15 @@
585
585
 
586
586
 
587
587
  原因が全然分からなかったので、アドバイス頂けると助かります。
588
+
589
+
590
+
591
+ --追記5--
592
+
593
+ ObjectMapper ObjectMapper = new ObjectMapper();
594
+
595
+
596
+
597
+ でインスタンス化させようとするとエラーになっているようです。
598
+
599
+ 調べても解決出来なかったのでアドバイス頂けると助かります。

4

追記4

2019/10/01 05:42

投稿

kokok
kokok

スコア145

test CHANGED
File without changes
test CHANGED
@@ -315,3 +315,273 @@
315
315
  internal Server Error
316
316
 
317
317
  とアラートされます。
318
+
319
+ --追記4--
320
+
321
+ 修正後コード
322
+
323
+
324
+
325
+ ```java
326
+
327
+ package servlet;
328
+
329
+ import java.io.IOException;
330
+
331
+ import java.io.PrintWriter;
332
+
333
+ import java.util.ArrayList;
334
+
335
+ import java.util.HashMap;
336
+
337
+ import java.util.List;
338
+
339
+ import java.util.Map;
340
+
341
+
342
+
343
+ import javax.servlet.ServletException;
344
+
345
+ import javax.servlet.annotation.WebServlet;
346
+
347
+ import javax.servlet.http.HttpServlet;
348
+
349
+ import javax.servlet.http.HttpServletRequest;
350
+
351
+ import javax.servlet.http.HttpServletResponse;
352
+
353
+
354
+
355
+ import com.fasterxml.jackson.databind.ObjectMapper;
356
+
357
+
358
+
359
+ import dao.USER_DB;
360
+
361
+ import model.UserDTO;
362
+
363
+
364
+
365
+
366
+
367
+ @WebServlet("/Userlist")
368
+
369
+ public class Userlist extends HttpServlet {
370
+
371
+ private static final long serialVersionUID = 1L;
372
+
373
+
374
+
375
+ public Userlist() {
376
+
377
+ super();
378
+
379
+ }
380
+
381
+
382
+
383
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
384
+
385
+
386
+
387
+ }
388
+
389
+
390
+
391
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
392
+
393
+
394
+
395
+ try {
396
+
397
+ request.setCharacterEncoding("UTF-8");
398
+
399
+
400
+
401
+ //ajaxのパラメータルリクエストを取得(中身"user")
402
+
403
+ String button = request.getParameter("one");
404
+
405
+
406
+
407
+ //if( button.equals("user")) {
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+ //ユーザ情報をデータベースから取得するクラス
416
+
417
+ USER_DB user_db = new USER_DB();
418
+
419
+
420
+
421
+ //ユーザid と ユーザ名の値がセットさせたdtoクラスが格納させた配列を取得
422
+
423
+ ArrayList<UserDTO> userlist = (ArrayList<UserDTO>) user_db.getUser();
424
+
425
+
426
+
427
+
428
+
429
+ List<Integer> userId = new ArrayList<Integer>();
430
+
431
+ List<String> userName = new ArrayList<String>();
432
+
433
+
434
+
435
+
436
+
437
+ //ユーザIdを<Integer>型のListに入れ直し
438
+
439
+ for(int i = 0; i < userlist.size(); i++) {
440
+
441
+
442
+
443
+ userId.add(userlist.get(i).getId());
444
+
445
+ }
446
+
447
+
448
+
449
+ //ユーザNameを<String>型のListに入れ直し
450
+
451
+ for(int i = 0; i < userlist.size(); i++) {
452
+
453
+
454
+
455
+ userName.add(userlist.get(i).getName());
456
+
457
+ }
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+ Map<String, String> userlists = new HashMap<>();
466
+
467
+
468
+
469
+ //MapのキーにユーザId, 値のNameをセット
470
+
471
+ for(int i= 0; i < userlist.size(); i++) {
472
+
473
+
474
+
475
+ userlists.put(String.valueOf(userId.get(i)), userName.get(i));
476
+
477
+ }
478
+
479
+
480
+
481
+ // JSONObject obj = new JSONObject(userlists);
482
+
483
+
484
+
485
+ String json = new ObjectMapper().writeValueAsString(userlists);
486
+
487
+ System.out.println(json);
488
+
489
+ PrintWriter out = response.getWriter();
490
+
491
+ out.print(json);
492
+
493
+
494
+
495
+ // Gson gson = new Gson();
496
+
497
+ // String json = gson.toJson(userName.get(0));
498
+
499
+
500
+
501
+
502
+
503
+ // PrintWriter out = response.getWriter();
504
+
505
+ // out.print(obj);
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+ // Map<String, Object> map = new HashMap<>();
514
+
515
+ // map.put("name", "Taro Tanaka");
516
+
517
+ // map.put("age", 30);
518
+
519
+
520
+
521
+ //JSONObject obj = new JSONObject(map);
522
+
523
+
524
+
525
+ // PrintWriter out = response.getWriter();
526
+
527
+ // out.print(obj);
528
+
529
+
530
+
531
+ //out.close();
532
+
533
+
534
+
535
+ } catch(Exception e) {
536
+
537
+ e.printStackTrace();
538
+
539
+ }
540
+
541
+ }
542
+
543
+
544
+
545
+ }
546
+
547
+
548
+
549
+ ```
550
+
551
+
552
+
553
+ 修正後のコードを実行すると 
554
+
555
+
556
+
557
+ jquery.min.js:2 POST http://localhost:8080/webkensyu/Userlist 500 (Internal Server Error)
558
+
559
+
560
+
561
+ とエラーが出てしまいます。
562
+
563
+
564
+
565
+ PrintWriter out = response.getWriter();
566
+
567
+ out.print(json);
568
+
569
+ で、mapをjsonに変換したデータを文字列としてストリームに出力しています。
570
+
571
+
572
+
573
+ 例えば  String aaa = "aaa";
574
+
575
+
576
+
577
+ PrintWriter out = response.getWriter();
578
+
579
+ out.print(aaa);
580
+
581
+
582
+
583
+ このような例だと上手くjqueryの方で受けっとってconsoleなどに出力できます。
584
+
585
+
586
+
587
+ 原因が全然分からなかったので、アドバイス頂けると助かります。

3

追記3

2019/10/01 03:02

投稿

kokok
kokok

スコア145

test CHANGED
File without changes
test CHANGED
@@ -281,3 +281,37 @@
281
281
  Not Found
282
282
 
283
283
  とアラートされます。
284
+
285
+
286
+
287
+ --追記3--
288
+
289
+
290
+
291
+ Chromeコンソールには
292
+
293
+ POST http://localhost:8080/webkensyu/Userlist 500 (Internal Server Error)
294
+
295
+ send @ jquery.min.js:2
296
+
297
+ ajax @ jquery.min.js:2
298
+
299
+ (anonymous) @ kensyu.js:12
300
+
301
+ dispatch @ jquery.min.js:2
302
+
303
+ v.handle @ jquery.min.js:2
304
+
305
+ とエラーが出てしまいます。
306
+
307
+
308
+
309
+ 実行するとjquery の error : functionで
310
+
311
+
312
+
313
+ エラーが発生しました:error:
314
+
315
+ internal Server Error
316
+
317
+ とアラートされます。

2

追記2

2019/09/30 09:53

投稿

kokok
kokok

スコア145

test CHANGED
File without changes
test CHANGED
@@ -213,3 +213,71 @@
213
213
  javaでjsonを扱うために必要なことをネットで調べてみました。
214
214
 
215
215
  自分なりに理解して書いてみたのですが、 コンソールエラーが何のエラーか分からず、対処出来ずにいます。
216
+
217
+
218
+
219
+
220
+
221
+ --追記2--
222
+
223
+ ```jquery
224
+
225
+ $('#user_list2').on('click',function(){
226
+
227
+
228
+
229
+ var val= $('#user_list').val();
230
+
231
+
232
+
233
+ $.ajax({
234
+
235
+
236
+
237
+ url:"Userlist",
238
+
239
+ type:"POST",
240
+
241
+ cache:false,
242
+
243
+ data:{'user':val},
244
+
245
+ // dataType:"json",
246
+
247
+ success: function(data){
248
+
249
+ userlist = data;
250
+
251
+ $("#test1").text(userlist);
252
+
253
+ },
254
+
255
+ error : function(XMLHttpRequest, textStatus, errorThrown) {
256
+
257
+ alert("エラーが発生しました:" + textStatus +":\n" + errorThrown);
258
+
259
+ }
260
+
261
+ });
262
+
263
+
264
+
265
+ });
266
+
267
+
268
+
269
+ ```
270
+
271
+
272
+
273
+
274
+
275
+ 実行するとjquery の error : functionで
276
+
277
+
278
+
279
+ エラーが発生しました:error:
280
+
281
+ Not Found
282
+
283
+ とアラートされます。

1

追記部分

2019/09/30 08:06

投稿

kokok
kokok

スコア145

test CHANGED
File without changes
test CHANGED
@@ -199,3 +199,17 @@
199
199
 
200
200
 
201
201
  調べても、原因が分からず解決出来なかったのでアドバイス頂けると助かります。
202
+
203
+
204
+
205
+ --追記--
206
+
207
+ コンソールエラー内容
208
+
209
+ 重大: Servlet.service() for servlet [servlet.Userlist] in context with path [/webkensyu] threw exception [サーブレットの実行により例外を投げました] with root cause [月
210
+
211
+
212
+
213
+ javaでjsonを扱うために必要なことをネットで調べてみました。
214
+
215
+ 自分なりに理解して書いてみたのですが、 コンソールエラーが何のエラーか分からず、対処出来ずにいます。