ご回答いただきありがとうございます。
>①「当方が独自につけたアプリケーション名」を含む、クラスファイルを置いた
> 正確な場所
>
>C:\Henacat_0_1\webapps\makeTcpServer\
>
>これで合っていますか?
※を参照願います
>②そのフォルダに置いたクラスファイルのファイル名すべて
ShowBBS.class
Message.class
PostBBS.class
の3つです。
>③List3-13 Main.javaの8~10行目に相当する箇所のソースコード
WebApplication app = WebApplication.createInstance("makeTcpServer");
app.addServlet("/ShowBBS", "ShowBBS");
app.addServlet("/PostBBS", "PostBBS");
となります。
>パッケージを使っているならパッケージ名が要りますし、
>その場合はクラスファイルの置き場所もパッケージに沿ったフォルダ構成に
>なっていなければいけません。
※ここが原因かもしれません。
ShowBBS.java、PostBBS.java、Message.javaの3つは、"chapter3"というパッケージの中にあります。
そのため、フォルダ構成を以下のように変更しました。
C:\Henacat_0_1\webapps\makeTcpServer\chapter3
そのうえで、
http://localhost:8001/makeTcpServer/chapter3/ShowBBSをたたいたところ、
C:\webserver\error_documentに格納した404.htmlが表示されました。
(リスト3-14:ServerThread.javaの87行目でNoSuchFileExceptionがcatchされました。)
>④長くなっても構いませんので、修正したクラスのソースを丸ごとここに貼ってください。
Main.java
package com.kokun.henacat.webserver;
import java.net.ServerSocket;
import java.net.Socket;
import com.kokun.henacat.servletimpl.WebApplication;
public class Main {
public static void main(String[] args) throws Exception{
WebApplication app = WebApplication.createInstance("makeTcpServer");
app.addServlet("/ShowBBS", "ShowBBS");
app.addServlet("/PostBBS", "PostBBS");
try(ServerSocket server = new ServerSocket(8001)){
for(;;) {
Socket socket = server.accept();
ServerThread serverThread = new ServerThread(socket);
Thread thread = new Thread(serverThread);
thread.start();
}
}
}
}
変更はMain.javaのみです。
よろしくお願いします。