Could not create JarEntryRevision

本文记录了在配置Struts2.2.1过程中遇到的问题及解决方法,详细列出了所需导入的7个关键JAR文件,并提供了解决启动错误的具体步骤。
 

前些天刚好开始Struts的学习,但是在配置Struts 2的时候就遇到了很大的障碍,我使用的Struts 2版本是2.2.1(即Struts 2.2.1),我参考了《精通J2EE》(第二版)里的有关Struts 2的配置内容,该书使用的是Struts 2.0.9)。我首先从Struts 2.2.1的lib文件下复制了“freemarker-2.3.16.jar,ognl-3.0.jar,struts2-core-2.2.1.jar,xwork-core-2.2.1.jar”,然后粘贴在了项目的lib文件下,也可以通过“Add External JARs”的形式导入,但是如上所作后,在启动Tomcat时出现了如下的错误:

警告: Could not create JarEntryRevision for [jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar]

...

2010-9-24 11:16:02 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info

信息: Parsing configuration file [struts-default.xml]

2010-9-24 11:16:02 com.opensymphony.xwork2.util.logging.jdk.JdkLogger error

严重: Dispatcher initialization failed

Unable to load configuration. - bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ...

Caused by: Unable to load bean: type:org.apache.struts2.dispatcher.multipart.MultiPartRequest class:org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest - bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ...

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext

    ...

2010-9-24 11:16:02 org.apache.catalina.core.StandardContext filterStart

严重: Exception starting filter struts2

Unable to load configuration. - bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ...

Caused by: Unable to load configuration. - bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ... 

Caused by: Unable to load bean: type:org.apache.struts2.dispatcher.multipart.MultiPartRequest class:org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest - bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ... 

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext

    ...

Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.RequestContext

    ...

2010-9-24 11:16:02 org.apache.catalina.core.StandardContext start

严重: Error filterStart

2010-9-24 11:16:02 org.apache.catalina.core.StandardContext start

严重: Context [/Struts2] startup failed due to previous errors

 

这些错误很让我摸不着头脑,经多方查阅资料后,在Struts 2.2.x中应该导入如下7个JAR文件

1)   commons-fileupload-1.2.1.jar

2)   commons-io-1.3.2.jar

3)   freemarker-2.3.16.jar

4)   javassist-3.7.ga.jar

5)   ognl-3.0.jar

6)   struts2-core-2.2.1.jar

7)   xwork-core-2.2.1.jar

 

其实,这里还有一个小窍门,我们可以将Struts 2.2.x根目录下的apps文件夹下的struts2-blank-2.2.1.war文件进行解压,然后找到WEB-INF下的lib目录,我们可以发现里面列出了7个JAR文件,刚好这7个就是我们配置Struts 2.2.x需要导入的JARs文件:



现在服务器应该就可以正常启动了!

### FTP 553 Could not create file 错误原因与解决方法 FTP客户端在上传文件时出现 `553 Could not create file` 的错误,通常是由于服务器端权限配置不当、路径不可写或目录结构不符合预期所导致的。以下是该问题的具体原因及对应的解决方案。 #### 权限设置不当 当用户尝试上传文件到目标目录时,若该目录没有正确的写入权限,则会导致服务器拒绝创建新文件的操作。例如,在使用 vsftpd 服务时,如果 `/home/ftpuser` 目录被错误地设置为 `chmod -R 777`,可能导致服务无法正常启动;而仅对其中特定子目录(如 `/home/ftpuser/images`)设置 `chmod -R 777`,可以避免此问题并允许上传操作[^2]。 #### 解决方法: ```bash sudo mkdir /home/ftpuser/images sudo chmod -R 777 /home/ftpuser/images ``` #### 用户根目录配置错误 vsftpd 默认不会将用户限制在其主目录下,如果未正确配置 `local_root` 参数,可能导致用户尝试访问其无权操作的路径。为确保用户始终处于可写目录中,应在 `/etc/vsftpd.conf` 中添加如下配置: ```bash local_root=/home/ftpuser ``` 修改后重启 vsftpd 服务以应用更改。 #### 被动模式连接失败 某些情况下,防火墙或NAT设备可能阻止了数据连接通道,尤其是在使用被动模式时。此时需确认是否启用了 `pasv_enable=YES` 并正确设置了 `pasv_address` 和 `pasv_min_port` / `pasv_max_port`,以便客户端能够建立稳定的数据传输连接[^1]。 #### 示例配置片段: ```bash pasv_enable=YES pasv_address=192.168.169.141 pasv_min_port=40000 pasv_max_port=40100 ``` #### SELinux 或 AppArmor 限制 Linux 系统上的安全模块(如 SELinux 或 AppArmor)可能会阻止 vsftpd 写入特定目录。可以通过临时禁用这些安全机制来测试是否由其引起问题: - **SELinux**: ```bash setsebool -P ftp_home_dir=on ``` - **AppArmor**: 需要编辑相关策略文件或卸载对应配置。 #### 文件系统挂载选项限制 如果 FTP 用户试图写入的目录位于一个只读挂载点上,也会导致此类错误。检查挂载状态并重新挂载为可读写形式可以解决问题: ```bash mount | grep /path/to/mountpoint mount -o remount,rw /path/to/mountpoint ``` #### 客户端路径设置不一致 部分 FTP 客户端在执行上传命令时依赖于当前工作目录(远程和本地)。例如,使用 `put local-file remote-file` 命令前应确保已通过 `cd` 切换至合适的远程路径,并且本地文件路径也正确无误[^3]。 ---
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值