admin 管理员组

文章数量: 887021


2023年12月23日发(作者:windows server2012r2产品密钥)

笔者记录下自己在开发过程中所遇到的一些常见的错误和警告,以供参考:

1、 警告:Settings: Could not parse setting, substituting default VM locale

分析及解决方法:

这是默认环境没有设置好,有两种方法可以解决。在WEB-INF/classes/ties或者src/ties文件中如下配置:=en_GB;或者在中如下配置:

2、 警告:No configuration found for the specified action: '' in namespace: ''. Form

action defaulting to 'action' attribute's literal value.

分析及解决方法:

由于jsp文件中标签它对应的源文件是

action=”/context/”>,sturts把action属性值当成了一个action name了,但这也不影响使用;但是对于使用了动态方法调用(cMethodInvocation = true)就没有那么幸运了,提交时就会得到HTTP Status 404 - /context/sum错误。对于以上情况,可以把标签写成

action=”sum!save” />

3、 ERROR:Cannot create JDBC driver of class '' for connect URL 'null'

分析及解决方法:

这是由于tomcat下的里的没有配置好或没有相应的配置,可按如下配置:

maxActive="50" maxIdle="30" maxWait="10000"

logAbandoned="true" username="sa" password="nenu"

driverClassName="verDriver"

url="jdbc:microsoft:sqlserver://localhost:1433;DatebaseName=st"/>

4、 ERROR:Cannot load JDBC driver class 'verDriver'

分析及解决方法:

这是由于JDBC的驱动没有装,可将sqlserver需要的三个驱动包,,拷贝到tomcat的安装目录下的 commonlib文件夹下面即可。

5、 ERROR:

Cannot create resource instance

分析及解决方法:

这是由于里type属性设置不正确,按不同的数据库相应的做出调整就好了。

6、 ERROR:tFoundException: Name jdbc is not bound in this Context

分析及解决方法:

这个很明显,上下文中找不到所给的jdbc名称,仔细查看纠正一下就好了

7、 严重: Exception starting filter struts2、Error filterStart、Context [/struts2] startup failed

due to previous errors

分析及解决方法:

(1)在中action中的包路径出错

(2)在工程中导入一个commons-fileupload的包

8、 eption: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'info'

无效

分析及解决方法:

出现这情况由两种可能性:

(1)配置的数据库中没有info表或者是表名写错了,这是就要将其更改为info表所在的数据库名或

表名;

(2)程序当前打开的数据库并非是我们所配置的数据库,虽然机率很小,但是在以不同用户身份登录时就可能出现这种情况,因为server默认打开的是master数据库。这时可以将你要使用的数据库设置为默认或者是在sql语句中打开数据库(如:”use st select * from info”)

9、 struts2中使用datetimePicker组件时的乱码显示

分析及解决方法:

参考 datetimePicker的使用.docx

10、 log4j:WARN No appenders could be found for logger()

log4j:WARN Please initialize the log4j system properly

分析及解决方法:

由于缺少ties文件引起的,或是该文件位置放置不正确。

可以按要求格式创建一个ties文件,放到src目录下(会自动拷贝到WEB-INFclasses目录下)或直接放到WEB-INFclasses

11、 在struts2表单验证过程中,当遇到验证错误或者类型转换错误时,

struts2框架自动生成一条错误信息,并且将该错误信息放到addFieldError里面, 最后这个信息会显示在相应的错误页中.

有时我们不希望这些错误出现在页面中,而是用自己的方式来表达,可以通过以下操作实现:

1)表单标签有一个theme(主题)属性, 默认主题是使用表格; 还有Ajax等主题, 这里换为simple主题, 表示不再用表格封装这个标签;这样就可以消除自动错误提示了

2)可以使用来显示错误,如果错误时ActionError,就需要标签来显示

3)在表单提交失败时,希望原来填过的值可以保留,struts2的s标签自动有保留功能,html标签需要通过request的el表达式实现保留

12、 Struts2环境下,使用自己定义的拦截器时,报HTTP-500错误

分析及解决方法:

HTTP-500是指内部服务器错误,所以错误处在运行的环境配置中;如果这时报NullPointerException,那错误很可能就是因为中忘记配置,这样就会导致struts2默认拦截器不能使用,给程序运行造成严重影响

13、 INFO:The Apache Tomcat Native library which allows optimal performance in production

environments was not found on the

分析及解决方法:

这时由于tomcat没能成功加载APR,可以到/native/下载文件,这里需要注意的是有32位和64位两种,根据自己的JDK选择合适的,放到%JDK-home%bin目录下,再重启tomcat就能加载APR了

14、 [SQLServer]当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'person' 中的标识列插入显式值

分析及解决方法:

由于标识列是自动增长类型,在默认情况下是不能插入显式值,也就是IDENTITY_INSERT默认为OFF;

15、 使用Hibernate时,表中字段(例如:zd)的默认值失效

分析及解决方法:

由于hibernate通过()来进行数据添加动作,如果程序中zd没有赋值,那么程序将会使用它的数据类型的默认值来进行添加,从而取代了数据库中配置好的默认值。可以通过以下操作来实现表中默认值生效:1)

在相关表的映射XML文件的class项增加:dynamic-insert="true";2)同时需要在相关字段设置:not-null=”false”

16、 ids for this class must be manually assigned before calling save():

分析及解决方法:

hibernate出现这个错误的原因有可能因为,你的表中有个主键。但是你插入的(调用save)时那个值是null.

如果主键是int、short或long类型,可以设置generator class为native;如果是char类型,可以在其对应的里的id标签里添加unsaved-value="null";或者在数据表里给主键添加默认值,然后在对应的id标签里添加dynamic-insert="true"

17、 JSP中("");语句跳转不成功:

分析及解决方法:

貌似没有问题,其实ct()是asp中的跳转方法,可以使用JavaScript中的=''来替换,或者直接用java中的direct(‘url’)

18、 Exception:

Underlying input stream returned zero bytes

分析及解决方法:

由于数据表中有个字段为text类型的,不能将一个"NULL"值和一个""(empty)存储在text类型的字段中。否则查询时就会出现[Microsoft][SQLServer 2000 Driver for JDBC]Underlying input stream

returned zero bytes 的异常了。可以将这个字段设个默认值,如” ”,就能解决这个bug了

19、 运用JS通过()或getElementById(idName).submit()控制弹出层tdiv里表单提交不成功,弹出层里的内容由隐藏层ydiv提供(即TML=TML),提示对象不可用或提交后取得表单元素属性值为空

分析及解决方法:

ydiv的display属性为none,虽然IE不会进行预读取,但其他浏览器却会这么做,这样就id为idName的表单就有两个了,通过getElementById(idName).submit()提交的是隐藏层中的表单;通过()提交就会提示说对象不可用,这里idName是个对象数组了。

解决方法有两种:一是用form自己的提交按钮;而是用[1].submit()来提交就好了

20、

Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required

library:%java_home%

分析及解决方法:

Such errors indicate use of non-API classes and those access rules are defined by Eclipse

JDT(Joint Design Team)

You can change compiler settings to not fail on those restrictions in workspace settings in

Window Preferences Java Compiler Errors/Warnings Deprecated and restricted

API Forbidden reference (access rules) Warnings; or per-project from Project

Properties Java Compiler ErrorsWarnings Deprecated and restricted API Forbidden

reference (access rules) Warnings"

21、 Tomcat5.0环境下运行struts2,出现下述异常,Exception starting filter struts2:ormerFactoryConfigurationError: Provider

ormerFactoryImpl not found,

at

tance(Unknown Source)

分析及解决方法:

${}commonendorsed目录下缺省、、、包或版本不合适,/xml/xalan-j/可下载

22、 Tomcat5.0环境下运行Struts2,出现Unable to load configuration. - bean -

jar:file:/${}/WEB-INF/lib/!/:47:178

分析及解决方法:

struts2除了它的5个核心jar包外,和这两个jar包也必须放到lib目录下

23、 Tomcat5.5环境下,出现WARNING: Security role name private used in an

without being defined in a

分析及解决方法:

由于在项目里配置了auth-constraint,但是没有在%tomcat_dir%中定义标签。例如项目里这样引用yourname,那么在tomcat下的就要增加如下标签:yourname


本文标签: 错误 使用 文件 标签 提交