質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

2663閲覧

Eclipseで、特定のクラスファイルを追加するとサーバの始動に失敗する

aqua_w

総合スコア7

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

1クリップ

投稿2016/10/25 06:02

###前提・実現したいこと
eclipseのJEEを用いてJavaプログラミングの練習をしています。
まだ勉強し始めて日も浅いため、見当違いのことを書いていた場合は申し訳ありません。
解決したいことは、特定のクラスファイルをサーバに追加して実行しようとすると、「localhostのTomcat v8.5サーバの開始中に問題が発生しました。サーバーローカルホストのTomcat v8.5サーバの始動に失敗しました。」というようなエラーが出るようになったことです。この問題に似た事例をいくつか探してみましたが、どれもうまく行かなかったり、当てはまっていなかったりと、悩んでおります。もし解決に必要なプロセスを教えていただけるとありがたいです。至らないところがたくさんあると思いますがどうぞよろしくお願いいたします。

###発生している問題・エラーメッセージ
サーバにクラスファイルを追加するとサーバの始動に失敗すること

エラーメッセージ

重大: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Test]]
重大: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
重大: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
... 11 more
###該当のソースコード

Java

1package Servlet; 2 3import java.io.*; 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 10import org.apache.commons.httpclient.*; 11import org.apache.commons.httpclient.methods.*; 12import org.apache.commons.httpclient.cookie.CookiePolicy; 13import org.apache.oro.text.perl.*; 14 15/** 16 * Servlet implementation class Weather 17 */ 18@WebServlet("/Weather") 19public class Weather extends HttpServlet implements javax.servlet.Servlet { 20 private static final long serialVersionUID = 1L; 21 22 /** 23 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 24 */ 25 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 26 String url = "http://weather.yahoo.co.jp/weather/jp/6/3530.html"; 27 String chr = "EUC-JP"; 28 String outEncoding = "Shift_JIS"; 29 String responseBody = ""; 30 HttpClient client = new HttpClient(); 31 GetMethod method = new GetMethod(url); 32 method.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); 33 method.setRequestHeader("User-Agent", "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1)"); 34 response.setContentType("text/html;charset=" + outEncoding); 35 PrintWriter out = response.getWriter(); 36 try { 37 int statusCode = client.executeMethod(method); 38 if(statusCode != HttpStatus.SC_OK) { 39 System.out.println("失敗:" + method.getStatusLine()); 40 } 41 Reader in = new InputStreamReader(method.getResponseBodyAsStream(), chr); 42 BufferedReader br = new BufferedReader(in); 43 String html = null; 44 while((html = br.readLine()) != null) { 45 responseBody += html; 46 } 47 in.close(); 48 br.close(); 49 String header = "<html><head><title>Yahoo!天気</title></head><body><center><h1>の週間天気予報</h1>"; 50 String footer = "</center></body></html>"; 51 Perl5Util pu = new Perl5Util(); 52 String pattern = "/<!---週間の天気--->(.+)<!---/週間の天気--->"; 53 if(pu.match(pattern, responseBody)) { 54 out.println(header + (pu.group(1)) + footer); 55 } 56 } catch(IOException e) { 57 System.out.println("Failed to download file."); 58 e.printStackTrace(); 59 } finally { 60 method.releaseConnection(); 61 } 62 } 63} 64 65 66###試したこと 67サーバのクリーン後再起動 68プロジェクトの除去によってどのクラスファイルに問題があったのか探したこと 69 70###補足情報(言語/FW/ツール等のバージョンなど) 71Java8 72Tomcat v8.5 73Eclipse neon JEE

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

記載していただいたソースでは、以下のライブラリ(jarファイル)が必要なようです。

これらのライブラリを入手し、/WEB-INF/lib へ格納していますでしょうか。

投稿2016/10/25 08:33

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aqua_w

2016/10/25 09:47

早速の回答有り難うございます。 動的Webプロジェクトのビルドパスには、該当のjarファイルを追加していますが、/WEB-INF/libへは格納していませんでした。お教え頂いた通り、試してみたいと思いますが、方法がよくわからず格納の方法を調べているところです。もし上手く行った場合にはご報告させていただきます。
aqua_w

2016/10/25 10:17

A-pZさんのおっしゃられた通り、/WEB-INF/libにjarファイルをエクスプローラから追加したところ上手く行きました!プログラムにエラーがあり、プログラム自体の実行は失敗しましたが、サーバは上手く機能してくれたようです。本当にありがとうございました!
A-pZ

2016/10/25 11:40

d(・ω・,,
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問