以下のメッセージを削除します。


[2237] Re:eclipseでHenacatを作成したい
返信


投稿者:こー
2020/08/17 14:01:09

Link:
ご回答いただきありがとうございます。

> 崚方が独自につけたアプリケーション名」を含む、クラスファイルを置いた
> 正確な場所
>
>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のみです。

よろしくお願いします。

パスワード:

管理者削除