Struts2 初学遇到:The requested resource is not available.
报错页面:目录结构:
web.xml:
struts.xml:
login.jsp:
初学struts,遇到了The requested resource is not available的问题,在网上找了下相关的问题分析,
很多人都说是struts.xml的配置问题,但是调整了下还是报错,也请各位高手看下是否
<package name="Struts2Demo" extends="struts-default"> 的包名定义错了,这个包名的定义有什么规则吗?
如果以后碰到类似的问题,应该怎么去分析? struts2,struts.xml --------------------编程问答-------------------- <package name="default" namespace="/" extends="struts-default"> --------------------编程问答-------------------- 不行哦,报错依旧 --------------------编程问答-------------------- Struts2Demo/welcome.jsp --------------------编程问答-------------------- 和打开哪个JSP页面无关吧,程序是跑到struts.xml就已经找不到requested resource --------------------编程问答-------------------- 你问题发的很认真 值得表扬..虽然有些关键地方并没有发出
1.启动项目的时候请检查控制台输出或者通过Tomcat Manager检查项目运行状态 404除了资源不存在外 项目启动失败则无法访问此项目下的任何资源
2.如果项目启动成功 去发布目录检查下是否存在你访问的JSP文件
3.如果项目启动失败..你先解决了再说吧 --------------------编程问答-------------------- 楼主,贴一下你的Action部分部分代码,因为在你的strut.xml中没有配置method属性,不知道你的Action中是否有默认的execute()方法。 --------------------编程问答-------------------- 404错误:如五楼说先检查下服务器。
<package name="default" namespace="/" extends="struts-default">
然后在login.jsp页面的<s:form action="login" >改为<s:form action="/login" >
试试
--------------------编程问答-------------------- 指定方法没?method。。。。。还是默认方法? --------------------编程问答-------------------- 1.method 是不是execute?
2.xml映射的Class路径是否写对了? --------------------编程问答-------------------- 按5楼的建议,正在按console的报错信息去百度相关的解决方法
以下是报错信息:
八月 25, 2013 11:18:36 上午 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Java\jdk1.7.0_25\bin;.
八月 25, 2013 11:18:36 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:StrutsDemo' did not find a matching property.
八月 25, 2013 11:18:37 上午 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
八月 25, 2013 11:18:37 上午 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
八月 25, 2013 11:18:37 上午 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1068 ms
八月 25, 2013 11:18:37 上午 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
八月 25, 2013 11:18:37 上午 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
八月 25, 2013 11:18:38 上午 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispathcer.ng.filter.StrutsPrepareAndExecuteFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
八月 25, 2013 11:18:38 上午 org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
八月 25, 2013 11:18:38 上午 org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/StrutsDemo] startup failed due to previous errors
八月 25, 2013 11:18:38 上午 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
八月 25, 2013 11:18:38 上午 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
八月 25, 2013 11:18:38 上午 org.apache.catalina.startup.Catalina start
INFO: Server startup in 1400 ms
--------------------编程问答-------------------- 我按控制台的错误日志,逐个将问题解决了。可以有个地方,还是很不理解:
书上说“在Eclipse工具管理下,当Eclipse生成、部署WB项目时,会自动将Src路径下除*.java外的所有文件都copy到WEB应用的WEB-INF\classes路径下”,为什么我debug后相应的struts.xml等文件不会自动copy到WEB-INF\classes路径下呢(classes 文件夹是我自己建的)。 --------------------编程问答-------------------- 我按控制台的错误日志,逐个将问题解决了。可以有个地方,还是很不理解:
书上说“在Eclipse工具管理下,当Eclipse生成、部署WB项目时,会自动将Src路径下除*.java外的所有文件都copy到WEB应用的WEB-INF\classes路径下”,为什么我debug后相应的struts.xml等文件不会自动copy到WEB-INF\classes路径下呢(classes 文件夹是我自己建的)。 --------------------编程问答-------------------- classes目录eclipse会帮你自动生成啊。。你打开Navigator视图看看classes下面有没有 --------------------编程问答-------------------- 我重开了项目,没有手工去建classes目录,结果如下图:
还是src目录下的文件还是没copy过去
补充:Java , Web 开发