S2が実行できない

DIコンテナ・Seasar初体験。こういうコードを書きました。


Speaker.java

package sjc;

public interface Speaker {
    public abstract String getMessage();
    public abstract void setMessage(String message);
}

SpeakerImpl.java

package sjc;

public class SpeakerImpl implements Speaker {

    private String message = "Hello, world.";
    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}


Speaker.dicon



	
	

S2Helloworld.java

package sjc;

import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;

public class S2Helloworld {

    private static final String PATH = "sjc/Speaker.dicon";
    public static void main(String[] args) {
        S2Container container = S2ContainerFactory.create(PATH);
        Speaker speaker = (Speaker)container.getComponent("Speaker");
        System.out.println(speaker.getMessage());
    }
}

CLASSPATHを設定して実行すると、こういう例外がでて異常終了。

$ java sjc/S2Helloworld
Exception in thread "main" java.lang.NoClassDefFoundError:javax.servlet.http.HttpServletRequest

理由は分かりませんでした。CLASSPATHはちゃんと設定しているはずだけどなぁ…。