在测试Struts2权威指南介绍的struts2文件上传,发现如下异常:
java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]
...........................
再回去仔细看该章节,发现是自己粗心了,忘记加所需要的两个除struts2外的jar文件.
commons-io-1.3.1.jar
commons-fileupload-1.2.jar
//org.apache.struts2.dispatcher.Dispatcher.java
public HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException {
// don't wrap more than once
if (request instanceof StrutsRequestWrapper) {
return request;
}
String content_type = request.getContentType();
if (content_type != null && content_type.indexOf("multipart/form-data") != -1) {
MultiPartRequest multi = getContainer().getInstance(MultiPartRequest.class);
request = new MultiPartRequestWrapper(multi, request, getSaveDir(servletContext));
} else {
request = new StrutsRequestWrapper(request);
}
return request;
}
Struts2默认使用的是Jakarta的Common-FileUpload的文件上传框架,而struts2的filter拦截了上传文件的动作,拦截器代码是这样写的:
注意MultiPartRequest multi = getContainer().getInstance(MultiPartRequest.class);这句是上传文件时拦截器实现所需要的,出错的原因是所不到MultiPartRequest.class的实现类.这个类在上传框架jar文件中.这是文件上传fileupload解析器。
因此,如果需要使用Struts2的文件上传功能,则需要在web应用中增加两个JAR文件,即commons-io-1.4.jar和commons-fileupload-1.2.1.jar。将这个包或是包的最新版本放在工程的lib目录下,即解决以上异常问题,成功实现文件的上传.
分享到:
相关推荐
java.lang.runtimeexception unexpected subelement
主要介绍了javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair 解决方法,有需要的朋友们可以学习下。
启动报错java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true...
java.lang.UnsupportedOperationException异常(csdn)————程序
Android Caused by: java.lang.ClassNotFoundException解决办法 出现问题: 08-13 18:29:22.924: E/AndroidRuntime(1875): Caused by: Java.lang.ClassNotFoundException:XXXXX in loader dalvik.system....
解决 java.lang.RuntimeException: Could not generate DH keypair异常处理。 bcprov-ext-jdk15on-1.60、bcprov-jdk15on-1.60两个包放到jre下的$JAVA_HOME/jre/lib/ext的路径下,然后配置$JAVA_HOME/jre/lib/...
05-27 15:35:11.487 E/AndroidRuntime( 2352): java.lang.RuntimeException: Unable to create service com.android.systemui.keyguard.KeyguardService: java.lang.SecurityException: read wallpaper: Neither ...
1.基于 trie 树结构实现高效词图扫描 2.生成所有切词可能的有向无环图 DAG 3.采用动态规划算法计算最佳切词组合 4.基于 HMM 模型,采用 Viterbi (维特比)算法实现未登录词识别
security.provider.2=sun.security.provider.Sun security.provider.3=sun.security.rsa.SunRsaSign security.provider.4=com.sun.net.ssl.internal.ssl.Provider security.provider.5=...
java.lang.RuntimeException: Unsupported algorithm: HmacSHA1 解决方法,阿里云
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 通过控制台的...
NULL 博文链接:https://jameskaron.iteye.com/blog/2291495
java.lang.RuntimeException java.lang.ArithmeticException 当出现异常的运算条件时,抛出此异常。 这个异常的解释是 "数学运算异常 ",比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,...
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 解决方法 ...
org.apache.struts2.ServletActionContext (implements org.apache.struts2.StrutsStatics) org.apache.struts2.RequestUtils org.apache.struts2.StrutsConstants java.lang.Throwable (implements java.io....
解决Got an exception - java.lang.RuntimeException: Unable to get class information for ***Exception. 找这个解决方法找了一个晚上,希望能对你有帮助!
下面小编就为大家带来一篇完美解决java.lang.OutOfMemoryError处理错误的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java.lang.ExceptionInInitializerError Caused by: java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(ImageIO.java:1388) at com.pleanwar.fiying.FlyingObject.loadImage...
NULL 博文链接:https://listen-raining.iteye.com/blog/1962065
加密是报:javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair 此处提供 bcprov-ext-jdk15on-154.jar 和 bcprov-jdk15on-154.jar 压缩包中有使用说明