我是Struts2的新手。使用struts创建一个hello world程序。当我运行它得到第一个屏幕,我输入我的输入,但点击提交按钮给出以下错误。
此helloworld示例的来源:http://www.tutorialspoint.com/struts_2/index.htm
HTTP状态404 - / HelloWorldStruts2 / hello
输入状态报告
message / HelloWorldStruts2 / hello
description请求的资源(/ HelloWorldStruts2 / hello)不可用。
Apache Tomcat / 6.0.29
建议问题是什么?
答案 0 :(得分:1)
得到了解决方案。
在index.jsp中有<form>
个标记。当我将其更改为<s:form>
时工作正常。
或从
更改<form action="hello">
到
<form action="hello.action">
答案 1 :(得分:0)
这对我有用,特别针对这个问题。使用Tomcat 8:
确保您已在classes
下创建了WebContent\WEB-INF
文件夹。
在其中创建logging.properties
文件并向其添加以下内容。 (如果文件单独跳转到Java Resources&gt; Libraries,则无关紧要): -
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = \ java.util.logging.ConsoleHandler
然后在Tomcat webapps
文件夹的位置删除您的HelloWorldStruts2.war
文件。
现在按照网站的说明将项目导出到新的HelloWorldStruts2.war
文件(如果存在,请记住用同名的文件覆盖现有的.war
文件)。
再次,通过将此文件复制到Tomcat目录的webapps
文件夹来部署该文件。
在浏览器中,再次转到http://localhost:8080/HelloWorldStruts2/index.jsp
,但我不确定这次是否可行。
但这一次,请观看Tomcat服务器应用程序的详细输出。你会得到一些像这样的例外(暂时没有警告):
30-Mar-2014 17:39:29.273 SEVERE [localhost-startStop-7] org.apache.catalina.core.StandardContext.filterStart Exception starting filter struts2 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:213)
at org.apache.struts2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:102)
...
看到这一点,我立即做的是将commons-lang3-x.y.z.jar
复制到WebContent\WEB-INF\lib
文件夹,然后再次导出和部署项目。
这一次,页面再次显示,所以我看了日志,发现Tomcat没有明确清除webapps\HelloWorldStruts2
文件夹的内容。
删除HelloWorldStruts2
和HelloWorldStruts2.war
并刷新浏览器中的index.jsp
页后,我的项目工作正常!