- - PR -
Struts + Tomcatでエラー
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-09-12 13:31
はじめて投稿させて頂きます。
struts1.1+Tomcat4.1.27でstruts_config設定ファイルにActionFormなど指定して 起動させると、以下のエラーがでてしまい、困っています。 どなたかstrutsに特にお詳しい方、教えてください。 どういう原因が主に考えられるのでしょうか? -- java.lang.ClassCastException at org.apache.struts.tiles.TilesRequestProcessor.initDefinitionsMapping(TilesRequestProcessor.java:126) at org.apache.struts.tiles.TilesRequestProcessor.init(TilesRequestProcessor.java:116) at org.apache.struts.action.ActionServlet.getRequestProcessor(ActionServlet.java:872) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619) at java.lang.Thread.run(Thread.java:536) | ||||||||
|
投稿日時: 2003-09-12 18:06
TilesRequestProcessor#init()
なのでstruts-config.xmlの記述間違えではないかと思います。 以下推測ですが、Tilesを使っていないなら、
に変更してみるとか、Tilesを使っているならばプラグインの記述忘れとかありませんか。
| ||||||||
|
投稿日時: 2003-09-12 18:55
Dandanさん、どうも有難うございました!
おっしゃられたとおり、struts_config.xmlにはもともと、Tiles使っていないため <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/> と入れてありましたが、 <controller processorClass="org.apache.struts.action.RequestProcessor"/> に変えて、実行しましたら、http://localhost:8088/test/logon.doで表示されました!どうも有難うござました。。ちなみにTilesPluginのところも調べてコメントに してたんですよ。しかし、上記はどう違うんでしょう??(実行できれば急ぎではありませんが。。 struts_config.xmlで <action-mappings> <action path="/logon" type="test.action.LogonAction" name="LogonForm" scope="request" input="/logon.jsp"> <forward name="success" path="/menu.jsp" /> </action> </action-mappings> と設定しています。 この場合、ブラウザでhttp://localhost:8088/test/logonと入力し実行したら、 logon.jspが表示されるのかと思ったのですが・・test/logon.jspと 実行しないと、表示されません。logon.jspから、ログオンボタン押下で menu.jspでは入力値表示される作りになっています。 設定ファイルで、action path="/logon"としているのに、どうして表示されない んでしょうか? input="/logon.jsp"としているので、そう指定しないと 表示されないものなんでしょうか? 教えてください。よろしくお願い致します。 | ||||||||
|
投稿日時: 2003-09-12 20:23
ここは、web.xmlの <!-- Standard Action Servlet Mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> に同期しています。 login.doで直接Actionが起動します。 つまり、jspのファイルの表示にはstruts.configは関連していません。 login.jspの表示(taglibにより諸々の変換はあり) ⇒ボタンクリック⇒Formに従い、login.doのリクエスト要求が発生 ⇒struts-config.xmlに従い、Actionが起動 となっています。 生成されたjspファイルを見てみると分かりますよ。 あと、質問自体参考書などを見れば分かる事が多い気がするので、 一度書籍に目を通されるのが良いと思いますよ。 [ メッセージ編集済み 編集者: PAL 編集日時 2003-09-12 20:30 ] | ||||||||
|
投稿日時: 2003-09-12 22:25
もっと本等でも勉強します。。失礼しました。
確認したかったのは、はじめのinput画面login.jspをstrtus_config設定ファイルで どこかに指定しておけないのかな、ということでした。 index.jspにhtml:linkタグで/login.jspを指定しておけば できました。。そこからは、strtus_configで指定してある、Action遷移で 行えますので。。ブラウザでは、http://localhost:8080/testでokでした。 <global-forwards>とかでできないものなのかがまだよく理解できてません。。 | ||||||||
|
投稿日時: 2003-09-16 10:50
http://localhost:8080/testでログイン画面を出したいのであれば、
web.xmlに <!-- The Usual Welcome File List --> <welcome-file-list> <welcome-file>/login.jsp</welcome-file> </welcome-file-list> で良いでしょう。 | ||||||||
|
投稿日時: 2003-09-18 14:10
うまくいきました。わかりました。
有難うございました。 | ||||||||
1
