MacでEclipseを使ってコードを書いたのですが、プロジェクトを実行しようとすると『サーバー ローカルホストのTomcat9 (Java11)は始動に失敗しました。』と表示され、実行できません。
プロジェクトのクラスにはエラーがありません。
何が問題なのでしょうか?
エラーメッセージ
情報: Serverのバージョン名:Apache Tomcat/9.0.21 [火 10月 01 14:43:01 JST 2019]
情報: Server ビルド: Jun 4 2019 20:19:36 UTC [火 10月 01 14:43:01 JST 2019]
情報: サーバーのバージョン番号:9.0.21.0 [火 10月 01 14:43:01 JST 2019]
情報: OS 名: Mac OS X [火 10月 01 14:43:01 JST 2019]
情報: OS バージョン: 10.14.4 [火 10月 01 14:43:01 JST 2019]
情報: アーキテクチャ: x86_64 [火 10月 01 14:43:01 JST 2019]
情報: Java Home: /Applications/Eclipse_2019-06.app/Contents/java/11/Home [火 10月 01 14:43:01 JST 2019]
情報: JVM バージョン: 11.0.3+7 [火 10月 01 14:43:01 JST 2019]
情報: JVM ベンダ: AdoptOpenJDK [火 10月 01 14:43:01 JST 2019]
情報: CATALINA_BASE: /Applications/Eclipse_2019-06.app/Contents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0 [火 10月 01 14:43:01 JST 2019]
情報: CATALINA_HOME: /Applications/Eclipse_2019-06.app/Contents/tomcat/9 [火 10月 01 14:43:01 JST 2019]
情報: コマンドライン引数:-Dcatalina.base=/Applications/Eclipse_2019-06.app/Contents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0 [火 10月 01 14:43:01 JST 2019]
情報: コマンドライン引数:-Dcatalina.home=/Applications/Eclipse_2019-06.app/Contents/tomcat/9 [火 10月 01 14:43:01 JST 2019]
情報: コマンドライン引数:-Dwtp.deploy=/Applications/Eclipse_2019-06.app/Contents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps [火 10月 01 14:43:01 JST 2019]
情報: コマンドライン引数:-Dfile.encoding=UTF-8 [火 10月 01 14:43:01 JST 2019]
情報: 商用環境に最適な性能を発揮する APR ベースの Tomcat ネイティブライブラリが java.library.path [/Users/AizawaHideki/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.] に存在しません。 [火 10月 01 14:43:01 JST 2019]
情報: プロトコルハンドラ ["http-nio-8095"] を初期化します。 [火 10月 01 14:43:02 JST 2019]
情報: プロトコルハンドラ ["ajp-nio-8029"] を初期化します。 [火 10月 01 14:43:02 JST 2019]
情報: サーバーの初期化 [939]ms [火 10月 01 14:43:02 JST 2019]
情報: サービス [Catalina] を起動します [火 10月 01 14:43:02 JST 2019]
情報: サーブレットエンジンの起動:[Apache Tomcat/9.0.21] [火 10月 01 14:43:02 JST 2019]
重大: 子コンテナーを開始できません。 [火 10月 01 14:43:02 JST 2019]
重大: 子コンテナーを開始できません。 [火 10月 01 14:43:02 JST 2019]
重大: 必要なサーバーコンポーネントを開始できなかったため、Tomcat を開始できませんでした。 [火 10月 01 14:43:02 JST 2019]
情報: ProtocolHandler ["http-nio-8095"] を一時停止します。 [火 10月 01 14:43:02 JST 2019]
情報: ProtocolHandler ["ajp-nio-8029"] を一時停止します。 [火 10月 01 14:43:02 JST 2019]
情報: サービス [Catalina] を停止します [火 10月 01 14:43:02 JST 2019]
情報: ProtocolHandler ["http-nio-8095"] を破棄します。 [火 10月 01 14:43:02 JST 2019]
情報: ProtocolHandler ["ajp-nio-8029"] を破棄します。 [火 10月 01 14:43:02 JST 2019]
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase (file:/Applications/Eclipse_2019-06.app/Contents/tomcat/9/lib/catalina.jar) to field java.io.ObjectStreamClass$Caches.localDescs
WARNING: Please consider reporting this to the maintainers of org.apache.catalina.loader.WebappClassLoaderBase
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
JSP
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta charset="UTF-8"> 7<title>ユーザー登録</title> 8</head> 9<body> 10<form action ="/robinson/FormSampleServlet" method="post"> 11名前:<br> 12<input type="text" name="name"><br> 13性別:<br> 14男<input type="radio" name="gender" value="0"> 15女:<input type="radio" name="gender" value="1"> 16<input type="submit" value="登録"> 17</form> 18</body> 19</html>
Servlet
1import java.io.IOException; 2import java.io.PrintWriter; 3 4import javax.servlet.ServletException; 5import javax.servlet.annotation.WebServlet; 6import javax.servlet.http.HttpServlet; 7import javax.servlet.http.HttpServletRequest; 8import javax.servlet.http.HttpServletResponse; 9 10/** 11 * Servlet implementation class FormSampleServlet 12 */ 13@WebServlet("/FormSampleServlet") 14public class FormSampleServlet extends HttpServlet { 15 private static final long serialVersionUID = 1L; 16 17 /** 18 * @see HttpServlet#HttpServlet() 19 */ 20 public FormSampleServlet() { 21 super(); 22 // TODO Auto-generated constructor stub 23 } 24 25 /** 26 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 27 */ 28 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 29 // TODO Auto-generated method stub 30 request.setCharacterEncoding("UTF-8"); 31 String name=request.getParameter("name"); 32 String gender=request.getParameter("gender"); 33 34 String errorMsg=""; 35 if(name==null||name.length()==0) { 36 errorMsg += "名前が入力されていません<br>"; 37 }else { 38 if(gender.equals("0")) {gender="男性";} 39 else if(gender.contentEquals("1")) {gender="女性";} 40 } 41 String msg=name+"さん("+gender+")を登録しました"; 42 if(errorMsg.length() !=0) { 43 msg=errorMsg; 44 } 45 46 response.setContentType("text/html; charset=UTF-8"); 47 PrintWriter out=response.getWriter(); 48 out.println("<!DOCTYPE html>"); 49 out.println("<html>"); 50 out.println("<head>"); 51 out.println("<meta charset=\"UTF-8\">"); 52 out.println("<title>ユーザー登録結果</title>"); 53 out.println("</head>"); 54 out.println("<body>"); 55 out.println("<p>"+msg+"</p>"); 56 out.println("</body>"); 57 out.println("</html>"); 58 } 59 60}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。