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はちゃんと設定しているはずだけどなぁ…。