做了一个Struts的例子,结果出现了下面的问题,部分配置如下:
web.xml:如下
<servlet>
<servlet-name>actionServlet</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>actionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
struts-config:如下
<struts-config>
<form-beans>
<form-bean name="formBean1" type="classmate.UserForm"/>
</form-beans>
<global-forwards>
<forwards name="failed" path="/LoginError.jsp"/>
<forwards name="successed" path="/LoginRight.jsp"/>
</global-forwards>
<action-mapping>
<action path="/Login" type="classmate.LoginAction" name="formBean1"
scope="request" input="/Login.jsp"/>
<action path="/regist" forward="/regist.jsp"/>
</action-mapping>
</struts-config>错误报告:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Error instantiating servlet class org.apache.struts.action.ActionServlet
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:805)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
java.lang.Thread.run(Unknown Source)
root cause java.lang.NoClassDefFoundError: org/apache/commons/beanutils/Converter
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
java.lang.Class.getConstructor0(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:805)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
java.lang.Thread.run(Unknown Source)另外,欢迎页面的(jsp)可以打开!
这个问题出在哪里啊?请高手指点!
web.xml:如下
<servlet>
<servlet-name>actionServlet</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>actionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
struts-config:如下
<struts-config>
<form-beans>
<form-bean name="formBean1" type="classmate.UserForm"/>
</form-beans>
<global-forwards>
<forwards name="failed" path="/LoginError.jsp"/>
<forwards name="successed" path="/LoginRight.jsp"/>
</global-forwards>
<action-mapping>
<action path="/Login" type="classmate.LoginAction" name="formBean1"
scope="request" input="/Login.jsp"/>
<action path="/regist" forward="/regist.jsp"/>
</action-mapping>
</struts-config>错误报告:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Error instantiating servlet class org.apache.struts.action.ActionServlet
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:805)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
java.lang.Thread.run(Unknown Source)
root cause java.lang.NoClassDefFoundError: org/apache/commons/beanutils/Converter
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
java.lang.Class.getConstructor0(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:805)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
java.lang.Thread.run(Unknown Source)另外,欢迎页面的(jsp)可以打开!
这个问题出在哪里啊?请高手指点!
这个类找不到把Struts 的那些jar都导进项目吧
应该是包没有倒全,lz检查一下web-inf/lib里的struts包全不全不全的话手工导入一下
缺少commons-beanutils.jar 这个jar包。
检查其他的jar包是否都导全了。
也可以手动 copy 对象的值 .
我只导了struts.jar这个包!
那么struts都有哪些包啊?在myeclipse中放在哪里啊?
Struts相关jar包简介 http://www.javawind.net/4028908419ce993d0119ce9a11890001.jhtml
commons-digester.jar
Digester本来仅仅是Jakarta Struts中的一个工具,用于处理struts-config.xml配置文件。显然,将XML文件转换成相应的Java对象是一项很通用的功能,这个工具理应具有更广泛的用途,所以很快它就在Jakarta Commons项目(用于提供可重用的Java组件库)中有了一席之地。
在内部, Struts 使用来自于Jakarta Commons[ASF, Commons] 项目的Digester 来解析Struts配置文件。Digester 使用struts-config DTD 来校验文档的格式,并且创建文档所描述的Java对象。如果XML文件包含了非正式文档化的元素,或者以非正式文档化的方式使用了元素,Digester 将不会处理这个文件。
commons-fileupload.jar
Commons-FileUpload FileUpload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力struts中上传文件要用到。
struts的验证框架依赖以下的两个包:
commons-validator.jar
(校验方法)和校验规则。支持校验规则的和错误消息的国际化。 struts使用它对表单进行验证。
jakarta-oro.jar
Commons-EL Commons-Jexl Search Jakarta ORO Jakarta ORO一套文本处理工具,能提供perl5.0兼容的正则表达式,AWK-like正则表达式, glob表达式。还提供替换,分割,文件名过虑等功能。
struts.jar
struts核心包。
其他的一下jar包
commons-collections.jar
扩展了标准的Java Collection框架,提供了额外的Map、List 和Set实现以及多个有用的工具类库。功能比java.util.*强大。
commons-logging.jar:
Apache Commons包中的一个,包含了日志功能。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出现是一个历史的的遗留的遗憾,当初Apache极力游说Sun把log4j加入JDK1.4,然而JDK1.4项目小组已经接近发布JDK1.4产品的时间了,因此拒绝了Apache的要求,使用自己的java.util.logging,这个包的功能比log4j差的很远,性能也一般。
后来Apache就开发出来了commons-logging.jar用来兼容两个logger。因此用commons-logging.jar写的log程序,底层的Logger是可以切换的,你可以选择log4j,java.util.logging或者它自带的Simple Logger。不过我仍然强烈建议使用log4j,因为log4j性能很高,log输出信息时间几乎等于System.out,而处理一条log平均只需要5us。你可以在Hibernate的src目录下找到Hibernate已经为你准备好了的log4j的配置文件,你只需要到Apache 网站去下载log4j就可以了。commons-logging.jar也是必须的jar包。
commons-beanutils
commons-chain
commons-digester
commons-fileupload
commons-io
commons-logging
commons-validator
jstl
oro
standard
struts-core
struts-extras
struts-taglib
就像就导入struts.jar一样导进去.
在你下载的struts下lib中!
选中工程名,点右键-》Build Path->Add Libriaries->MyEclipse Libraries->选中你要版本的Struts的jar
其中的包全部导入工程,还是不行啊,错误是一样的。
是不是我的web.xml和struts-congig.xml有问题啊?我第一次进去是上面的错误,我第二次进去就说是:
type Status reportmessage Servlet actionServlet1 is not availabledescription The requested resource (Servlet actionServlet1 is not available) is not available.其中actionServlet1 是我在web.xml的定义的
<servlet>
<servlet-name>actionServlet1 </servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet </servlet-class>
</servlet>妈的,请高手指点!!!
不是actionServlet1
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> <welcome-file-list>
<welcome-file>usermain.jsp</welcome-file>
</welcome-file-list>
缺少jar包 如果你是用的eclipse在类中import org.apache.commons.*;错误检查可能会提示你需要的包进行导入