質問編集履歴

6

web.xml

2020/01/06 08:38

投稿

hon.ki
hon.ki

スコア157

test CHANGED
File without changes
test CHANGED
@@ -404,298 +404,296 @@
404
404
 
405
405
 
406
406
 
407
+ ```web.xml
408
+
409
+ <?xml version="1.0" encoding="UTF-8"?>
410
+
411
+ <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
412
+
413
+ <display-name>CarBean</display-name>
414
+
415
+
416
+
417
+ <servlet>
418
+
419
+ <servlet-name>Sample6</servlet-name>
420
+
421
+ <servlet-class>Sample6</servlet-class>
422
+
423
+ </servlet>
424
+
425
+
426
+
427
+ <servlet-mapping>
428
+
429
+ <servlet-name>Sample6</servlet-name>
430
+
431
+ <url-pattern>/Sample6</url-pattern>
432
+
433
+ </servlet-mapping>
434
+
435
+
436
+
437
+ <servlet>
438
+
439
+ <servlet-name>Sample4</servlet-name>
440
+
441
+ <servlet-class>Sample4</servlet-class>
442
+
443
+ </servlet>
444
+
445
+
446
+
447
+ <servlet-mapping>
448
+
449
+ <servlet-name>Sample4</servlet-name>
450
+
451
+ <url-pattern>/Sample4</url-pattern>
452
+
453
+ </servlet-mapping>
454
+
455
+ <welcome-file-list>
456
+
457
+ <welcome-file>index.html</welcome-file>
458
+
459
+ <welcome-file>index.htm</welcome-file>
460
+
461
+ <welcome-file>index.jsp</welcome-file>
462
+
463
+ <welcome-file>default.html</welcome-file>
464
+
465
+ <welcome-file>default.htm</welcome-file>
466
+
467
+ <welcome-file>default.jsp</welcome-file>
468
+
469
+ </welcome-file-list>
470
+
471
+ </web-app>
472
+
407
473
  ```
408
474
 
409
- web.xml```ここに言語を入力
410
-
411
- <?xml version="1.0" encoding="UTF-8"?>
412
-
413
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
414
-
415
- <display-name>CarBean</display-name>
416
-
417
-
418
-
419
- <servlet>
420
-
421
- <servlet-name>Sample6</servlet-name>
422
-
423
- <servlet-class>Sample6</servlet-class>
424
-
425
- </servlet>
426
-
427
-
428
-
429
- <servlet-mapping>
430
-
431
- <servlet-name>Sample6</servlet-name>
432
-
433
- <url-pattern>/Sample6</url-pattern>
434
-
435
- </servlet-mapping>
436
-
437
-
438
-
439
- <servlet>
440
-
441
- <servlet-name>Sample4</servlet-name>
442
-
443
- <servlet-class>Sample4</servlet-class>
444
-
445
- </servlet>
446
-
447
-
448
-
449
- <servlet-mapping>
450
-
451
- <servlet-name>Sample4</servlet-name>
452
-
453
- <url-pattern>/Sample4</url-pattern>
454
-
455
- </servlet-mapping>
456
-
457
- <welcome-file-list>
458
-
459
- <welcome-file>index.html</welcome-file>
460
-
461
- <welcome-file>index.htm</welcome-file>
462
-
463
- <welcome-file>index.jsp</welcome-file>
464
-
465
- <welcome-file>default.html</welcome-file>
466
-
467
- <welcome-file>default.htm</welcome-file>
468
-
469
- <welcome-file>default.jsp</welcome-file>
470
-
471
- </welcome-file-list>
472
-
473
- </web-app>
475
+ ###生じたエラー
476
+
477
+ HTTPステータス 500 – Internal Server Error
478
+
479
+
480
+
481
+ タイプ 例外報告
482
+
483
+
484
+
485
+ メッセージ [Sample4.jsp] の処理中に行番号 [28] で例外が発生しました。
486
+
487
+
488
+
489
+ 説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。
490
+
491
+
492
+
493
+ 例外
494
+
495
+
496
+
497
+ org.apache.jasper.JasperException: [Sample4.jsp] の処理中に行番号 [28] で例外が発生しました。
498
+
499
+
500
+
501
+ 25: <table border="1" style="margin-left: auto; margin-right:auto;">
502
+
503
+ 26: <tr bgcolor="#E0C76F">
504
+
505
+ 27: <%
506
+
507
+ 28: for(int column=0; column<colname.size(); column++){
508
+
509
+ 29: %>
510
+
511
+ 30: <th>
512
+
513
+ 31: <%= (String) colname.get(column) %>
514
+
515
+
516
+
517
+
518
+
519
+ Stacktrace:
520
+
521
+ org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:625)
522
+
523
+ org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:514)
524
+
525
+ org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
526
+
527
+ org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
528
+
529
+ javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
530
+
531
+ org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
532
+
533
+ 根本原因
534
+
535
+
536
+
537
+ java.lang.NullPointerException
538
+
539
+ org.apache.jsp.Sample4_jsp._jspService(Sample4_jsp.java:152)
540
+
541
+ org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
542
+
543
+ javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
544
+
545
+ org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
546
+
547
+ org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
548
+
549
+ org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
550
+
551
+ javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
552
+
553
+ org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
554
+
555
+ 注意 原因のすべてのスタックトレースは、サーバのログに記録されています
556
+
557
+
558
+
559
+
560
+
561
+ ###期待された振る舞い
562
+
563
+ http://localhost:8080/CarBean/Sample4.jsp に、
564
+
565
+ 2:乗用車
566
+
567
+ 3:オープンカー
568
+
569
+ 4:トラック と表示される。
570
+
571
+
572
+
573
+ ###試したこと
574
+
575
+ ⒈ターゲットランタイムをTomcat9 (Java11)にして実行→結果は同じでした。
576
+
577
+ 2.同プロジェクトにて、単純にデータベースに接続するだけのコードを実行→実行できました。
578
+
579
+ ```ここに言語を入力
580
+
581
+ import java.sql.*;
582
+
583
+
584
+
585
+ public class Sample1
586
+
587
+ {
588
+
589
+ public static void main(String args[])
590
+
591
+ {
592
+
593
+ try{
594
+
595
+ //接続の準備
596
+
597
+ String url = "jdbc:derby:cardb;create=true";
598
+
599
+ String usr = "";
600
+
601
+ String pw = "";
602
+
603
+
604
+
605
+ //データベースへの接続
606
+
607
+ Connection cn = DriverManager.getConnection(url, usr, pw);
608
+
609
+
610
+
611
+ //問い合わせの準備
612
+
613
+ DatabaseMetaData dm = cn.getMetaData();
614
+
615
+ ResultSet tb = dm.getTables(null, null, "車表", null);
616
+
617
+
618
+
619
+ Statement st = cn.createStatement();
620
+
621
+
622
+
623
+ String qry1 = "CREATE TABLE 車表(番号 int, 名前 varchar(50))";
624
+
625
+ String[] qry2 = {"INSERT INTO 車表 VALUES (2, '乗用車')",
626
+
627
+ "INSERT INTO 車表 VALUES (3, 'オープンカー')",
628
+
629
+ "INSERT INTO 車表 VALUES (4, 'トラック')"};
630
+
631
+ String qry3 = "SELECT * FROM 車表";
632
+
633
+
634
+
635
+ if(!tb.next()){
636
+
637
+ st.executeUpdate(qry1);
638
+
639
+ for(int i=0; i<qry2.length; i++){
640
+
641
+ st.executeUpdate(qry2[i]);
642
+
643
+ }
644
+
645
+ }
646
+
647
+
648
+
649
+ //問い合わせ
650
+
651
+ ResultSet rs = st.executeQuery(qry3);
652
+
653
+
654
+
655
+ //データの取得
656
+
657
+ ResultSetMetaData rm = rs.getMetaData();
658
+
659
+ int cnum = rm.getColumnCount();
660
+
661
+ while(rs.next()){
662
+
663
+ for(int i=1; i<=cnum; i++){
664
+
665
+ System.out.print(rm.getColumnName(i) + ":"+ rs.getObject(i) + " ");
666
+
667
+ }
668
+
669
+ System.out.println("");
670
+
671
+ }
672
+
673
+
674
+
675
+ //接続のクローズ
676
+
677
+ rs.close();
678
+
679
+ st.close();
680
+
681
+ cn.close();
682
+
683
+ }
684
+
685
+ catch(Exception e){
686
+
687
+ e.printStackTrace();
688
+
689
+ }
690
+
691
+ }
692
+
693
+ }
474
694
 
475
695
  ```
476
696
 
477
- ###生じたエラー
478
-
479
- HTTPステータス 500 – Internal Server Error
480
-
481
-
482
-
483
- タイプ 例外報告
484
-
485
-
486
-
487
- メッセージ [Sample4.jsp] の処理中に行番号 [28] で例外が発生しました。
488
-
489
-
490
-
491
- 説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。
492
-
493
-
494
-
495
- 例外
496
-
497
-
498
-
499
- org.apache.jasper.JasperException: [Sample4.jsp] の処理中に行番号 [28] で例外が発生しました。
500
-
501
-
502
-
503
- 25: <table border="1" style="margin-left: auto; margin-right:auto;">
504
-
505
- 26: <tr bgcolor="#E0C76F">
506
-
507
- 27: <%
508
-
509
- 28: for(int column=0; column<colname.size(); column++){
510
-
511
- 29: %>
512
-
513
- 30: <th>
514
-
515
- 31: <%= (String) colname.get(column) %>
516
-
517
-
518
-
519
-
520
-
521
- Stacktrace:
522
-
523
- org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:625)
524
-
525
- org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:514)
526
-
527
- org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
528
-
529
- org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
530
-
531
- javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
532
-
533
- org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
534
-
535
- 根本原因
536
-
537
-
538
-
539
- java.lang.NullPointerException
540
-
541
- org.apache.jsp.Sample4_jsp._jspService(Sample4_jsp.java:152)
542
-
543
- org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
544
-
545
- javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
546
-
547
- org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
548
-
549
- org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
550
-
551
- org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
552
-
553
- javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
554
-
555
- org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
556
-
557
- 注意 原因のすべてのスタックトレースは、サーバのログに記録されています
558
-
559
-
560
-
561
-
562
-
563
- ###期待された振る舞い
564
-
565
- http://localhost:8080/CarBean/Sample4.jsp に、
566
-
567
- 2:乗用車
568
-
569
- 3:オープンカー
570
-
571
- 4:トラック と表示される。
572
-
573
-
574
-
575
- ###試したこと
576
-
577
- ⒈ターゲットランタイムをTomcat9 (Java11)にして実行→結果は同じでした。
578
-
579
- 2.同プロジェクトにて、単純にデータベースに接続するだけのコードを実行→実行できました。
580
-
581
- ```ここに言語を入力
582
-
583
- import java.sql.*;
584
-
585
-
586
-
587
- public class Sample1
588
-
589
- {
590
-
591
- public static void main(String args[])
592
-
593
- {
594
-
595
- try{
596
-
597
- //接続の準備
598
-
599
- String url = "jdbc:derby:cardb;create=true";
600
-
601
- String usr = "";
602
-
603
- String pw = "";
604
-
605
-
606
-
607
- //データベースへの接続
608
-
609
- Connection cn = DriverManager.getConnection(url, usr, pw);
610
-
611
-
612
-
613
- //問い合わせの準備
614
-
615
- DatabaseMetaData dm = cn.getMetaData();
616
-
617
- ResultSet tb = dm.getTables(null, null, "車表", null);
618
-
619
-
620
-
621
- Statement st = cn.createStatement();
622
-
623
-
624
-
625
- String qry1 = "CREATE TABLE 車表(番号 int, 名前 varchar(50))";
626
-
627
- String[] qry2 = {"INSERT INTO 車表 VALUES (2, '乗用車')",
628
-
629
- "INSERT INTO 車表 VALUES (3, 'オープンカー')",
630
-
631
- "INSERT INTO 車表 VALUES (4, 'トラック')"};
632
-
633
- String qry3 = "SELECT * FROM 車表";
634
-
635
-
636
-
637
- if(!tb.next()){
638
-
639
- st.executeUpdate(qry1);
640
-
641
- for(int i=0; i<qry2.length; i++){
642
-
643
- st.executeUpdate(qry2[i]);
644
-
645
- }
646
-
647
- }
648
-
649
-
650
-
651
- //問い合わせ
652
-
653
- ResultSet rs = st.executeQuery(qry3);
654
-
655
-
656
-
657
- //データの取得
658
-
659
- ResultSetMetaData rm = rs.getMetaData();
660
-
661
- int cnum = rm.getColumnCount();
662
-
663
- while(rs.next()){
664
-
665
- for(int i=1; i<=cnum; i++){
666
-
667
- System.out.print(rm.getColumnName(i) + ":"+ rs.getObject(i) + " ");
668
-
669
- }
670
-
671
- System.out.println("");
672
-
673
- }
674
-
675
-
676
-
677
- //接続のクローズ
678
-
679
- rs.close();
680
-
681
- st.close();
682
-
683
- cn.close();
684
-
685
- }
686
-
687
- catch(Exception e){
688
-
689
- e.printStackTrace();
690
-
691
- }
692
-
693
- }
694
-
695
- }
696
-
697
- ```
698
-
699
697
  実行結果:
700
698
 
701
699
  番号:2 名前:乗用車

5

webxmlを追加

2020/01/06 08:38

投稿

hon.ki
hon.ki

スコア157

test CHANGED
File without changes
test CHANGED
@@ -406,6 +406,74 @@
406
406
 
407
407
  ```
408
408
 
409
+ web.xml```ここに言語を入力
410
+
411
+ <?xml version="1.0" encoding="UTF-8"?>
412
+
413
+ <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
414
+
415
+ <display-name>CarBean</display-name>
416
+
417
+
418
+
419
+ <servlet>
420
+
421
+ <servlet-name>Sample6</servlet-name>
422
+
423
+ <servlet-class>Sample6</servlet-class>
424
+
425
+ </servlet>
426
+
427
+
428
+
429
+ <servlet-mapping>
430
+
431
+ <servlet-name>Sample6</servlet-name>
432
+
433
+ <url-pattern>/Sample6</url-pattern>
434
+
435
+ </servlet-mapping>
436
+
437
+
438
+
439
+ <servlet>
440
+
441
+ <servlet-name>Sample4</servlet-name>
442
+
443
+ <servlet-class>Sample4</servlet-class>
444
+
445
+ </servlet>
446
+
447
+
448
+
449
+ <servlet-mapping>
450
+
451
+ <servlet-name>Sample4</servlet-name>
452
+
453
+ <url-pattern>/Sample4</url-pattern>
454
+
455
+ </servlet-mapping>
456
+
457
+ <welcome-file-list>
458
+
459
+ <welcome-file>index.html</welcome-file>
460
+
461
+ <welcome-file>index.htm</welcome-file>
462
+
463
+ <welcome-file>index.jsp</welcome-file>
464
+
465
+ <welcome-file>default.html</welcome-file>
466
+
467
+ <welcome-file>default.htm</welcome-file>
468
+
469
+ <welcome-file>default.jsp</welcome-file>
470
+
471
+ </welcome-file-list>
472
+
473
+ </web-app>
474
+
475
+ ```
476
+
409
477
  ###生じたエラー
410
478
 
411
479
  HTTPステータス 500 – Internal Server Error

4

誤字より

2020/01/06 08:37

投稿

hon.ki
hon.ki

スコア157

test CHANGED
File without changes
test CHANGED
@@ -638,4 +638,4 @@
638
638
 
639
639
  ###その他懸念点
640
640
 
641
- このプログラムに対するほんでの解説として、「まずサーブレットとBeanをコンパイルしてクラスファイルを作成し適切なディレクトリに配置してから、サーブレットのURLを入力して実行するように」とあるのですが、Eclipseではクラスファイルを普段意識していないので、普通にSample4.javaをサーバーで実行しています。(http://localhost:8080/CarBean/Sample4には何も表示されません。)これは間違った操作なのでしょうか?
641
+ このプログラムに対するでの解説として、「まずサーブレットとBeanをコンパイルしてクラスファイルを作成し適切なディレクトリに配置してから、サーブレットのURLを入力して実行するように」とあるのですが、Eclipseではクラスファイルを普段意識していないので、普通にSample4.javaをサーバーで実行しています。(http://localhost:8080/CarBean/Sample4には何も表示されません。)これは間違った操作なのでしょうか?

3

その他の懸念点を追加しました。

2020/01/06 08:34

投稿

hon.ki
hon.ki

スコア157

test CHANGED
File without changes
test CHANGED
@@ -635,3 +635,7 @@
635
635
  番号:3 名前:オープンカー
636
636
 
637
637
  番号:4 名前:トラック
638
+
639
+ ###その他懸念点
640
+
641
+ このプログラムに対するほんでの解説として、「まずサーブレットとBeanをコンパイルしてクラスファイルを作成し適切なディレクトリに配置してから、サーブレットのURLを入力して実行するように」とあるのですが、Eclipseではクラスファイルを普段意識していないので、普通にSample4.javaをサーバーで実行しています。(http://localhost:8080/CarBean/Sample4には何も表示されません。)これは間違った操作なのでしょうか?

2

タイトルの修正

2020/01/06 08:33

投稿

hon.ki
hon.ki

スコア157

test CHANGED
@@ -1 +1 @@
1
- jspでInternal Server Error、org.apache.jasper.JasperException:
1
+ jspでHTTPステータス 500-Internal Server Error、org.apache.jasper.JasperException:
test CHANGED
File without changes

1

説明不足な点があったので追加しました。

2020/01/06 08:21

投稿

hon.ki
hon.ki

スコア157

test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,8 @@
22
22
 
23
23
  ###行った作業の手順
24
24
 
25
+ derby.jarを、動的プロジェクトを選択してプロジェクト→プロパティ→Javaのビルド・パス→ライブラリ→外部jarの追加で、db-derby-10.14.2.0のbin→derby.jarを選択して登録。
26
+
25
27
  以下のファイルを配置して、Sample4.jspを右クリック→サーバーで実行
26
28
 
27
29
  Sample4.jsp
@@ -505,3 +507,131 @@
505
507
  ###試したこと
506
508
 
507
509
  ⒈ターゲットランタイムをTomcat9 (Java11)にして実行→結果は同じでした。
510
+
511
+ 2.同プロジェクトにて、単純にデータベースに接続するだけのコードを実行→実行できました。
512
+
513
+ ```ここに言語を入力
514
+
515
+ import java.sql.*;
516
+
517
+
518
+
519
+ public class Sample1
520
+
521
+ {
522
+
523
+ public static void main(String args[])
524
+
525
+ {
526
+
527
+ try{
528
+
529
+ //接続の準備
530
+
531
+ String url = "jdbc:derby:cardb;create=true";
532
+
533
+ String usr = "";
534
+
535
+ String pw = "";
536
+
537
+
538
+
539
+ //データベースへの接続
540
+
541
+ Connection cn = DriverManager.getConnection(url, usr, pw);
542
+
543
+
544
+
545
+ //問い合わせの準備
546
+
547
+ DatabaseMetaData dm = cn.getMetaData();
548
+
549
+ ResultSet tb = dm.getTables(null, null, "車表", null);
550
+
551
+
552
+
553
+ Statement st = cn.createStatement();
554
+
555
+
556
+
557
+ String qry1 = "CREATE TABLE 車表(番号 int, 名前 varchar(50))";
558
+
559
+ String[] qry2 = {"INSERT INTO 車表 VALUES (2, '乗用車')",
560
+
561
+ "INSERT INTO 車表 VALUES (3, 'オープンカー')",
562
+
563
+ "INSERT INTO 車表 VALUES (4, 'トラック')"};
564
+
565
+ String qry3 = "SELECT * FROM 車表";
566
+
567
+
568
+
569
+ if(!tb.next()){
570
+
571
+ st.executeUpdate(qry1);
572
+
573
+ for(int i=0; i<qry2.length; i++){
574
+
575
+ st.executeUpdate(qry2[i]);
576
+
577
+ }
578
+
579
+ }
580
+
581
+
582
+
583
+ //問い合わせ
584
+
585
+ ResultSet rs = st.executeQuery(qry3);
586
+
587
+
588
+
589
+ //データの取得
590
+
591
+ ResultSetMetaData rm = rs.getMetaData();
592
+
593
+ int cnum = rm.getColumnCount();
594
+
595
+ while(rs.next()){
596
+
597
+ for(int i=1; i<=cnum; i++){
598
+
599
+ System.out.print(rm.getColumnName(i) + ":"+ rs.getObject(i) + " ");
600
+
601
+ }
602
+
603
+ System.out.println("");
604
+
605
+ }
606
+
607
+
608
+
609
+ //接続のクローズ
610
+
611
+ rs.close();
612
+
613
+ st.close();
614
+
615
+ cn.close();
616
+
617
+ }
618
+
619
+ catch(Exception e){
620
+
621
+ e.printStackTrace();
622
+
623
+ }
624
+
625
+ }
626
+
627
+ }
628
+
629
+ ```
630
+
631
+ 実行結果:
632
+
633
+ 番号:2 名前:乗用車
634
+
635
+ 番号:3 名前:オープンカー
636
+
637
+ 番号:4 名前:トラック