项目里用了开源验证码框架
JCaptcha,它通过配置文件指定图片颜色,配置如下
<bean id="softBlue" class="java.awt.Color" >
<constructor-arg index="0"><value>0</value></constructor-arg>
<constructor-arg index="1"><value>255</value></constructor-arg>
<constructor-arg index="2"><value>0</value></constructor-arg>
</bean>
问题1
在jdk 1.5.08下没有问题,但是当升级到jdk 1.6.10时,初始化失败,报错显示为
java.lang.IllegalArgumentException: Color parameter outside of expected range: Red Green Blue
at java.awt.Color.testColorValueRange(Color.java:298)
at java.awt.Color.<init>(Color.java:382)
at java.awt.Color.<init>(Color.java:357)
java.awt.Color的constructor有两个
public Color(int r, int g, int b) //int
public Color(float r, float g, float b) //float
debug Color显示为,spring调用了//float 标识的构造方法,而不是期望的 //int
所以给参数加上类型参数 "type="java.lang.Integer",该解决了吧
<bean id="softBlue" class="java.awt.Color" >
<constructor-arg type="java.lang.Integer" index="0" ><value>0</value></constructor-arg>。。。
出现新错误
问题2
...
.xml]: 3 constructor arguments specified but no matching constructor found in bean 'softBlue' (hint: specify index and/or type arguments for simple parameters to avoid type ambiguities)
大意是,请指定参数类型,避免类型混淆
////////////////////// 解决过程
问题1:google之,找到
一个先行者囧 ;里面说到jdk5和jdk6(win下)Color类文件里的两个构造方法(上面列举的//float,//int)位置不同,导致spring选择了//float代替了期望中的//int方法
那,问题2是怎么回事呢?指定类型为什么spring没认出来呢?
问题2:debug spring加载过程,到这一句,真相大白
if (valueHolder.getType().equals(requiredType.getName())) {
valueHolder.getType()-->“java.lang.Integer”
requiredType.getName()-->"int"
不相同,导致spring autowire 失败。。。
由于我们用的还是spring1.2,所以怀疑spring2.0是否已经修复了
==========补充
spring2.0下也存在,看来指定primary类型需谨慎
分享到:
相关推荐
JAVA 程序 源代码 import java.applet.*;import java.awt.*
import java.awt.docx
整合了java.awt.*;java.awt.event.*;javax.swing.*包中的类,结合布局与事件处理....这是本人自己写的哦
java.awt.color java.awt.datatransfer java.awt.dnd java.awt.event java.awt.font java.awt.geom java.awt.im java.awt.im.spi java.awt.image java.awt.image.renderable java.awt.print java.beans ...
Java的AWT包.pdf 学习资料 复习资料 教学资源
awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android ...
import java.awt.Color; import java.awt.Image; import java.awt.Insets; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ComponentAdapter; import java.awt.event....
import java.awt.AlphaComposite; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt....
简单的记事本的JAVA程序,//导入awt包,event包 import java.awt.*
了解Java的不同包功能
import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentEvent; import java....
解决java软件中Myeclipse 中的awt乱码问题
import java.awt.Color; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java....
import java.awt.Color; import java.awt.Dimension; import java.awt.Point; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.BufferedReader; import java.io.BufferedWriter;...
本章介绍如何利用JSP与Java2D...该包与java.awt、java.awt.color、java.awt.image、java.awt.font、java.awt.print,以及java.awt.image.renderable包中的API相结合,就可以实现美观的、复杂的、丰富多彩的Web图表了。
1. import java.awt.BorderLayout; 2. import java.awt.Component; 3. import java.awt.Dialog; 4. import java.awt.Dimension; 5. import java.awt.FlowLayout; 6. import java.awt.GridBagConstraints; 7. ...
用java写的项目,适合新手入门学习,在这里免费提供给大家,欢迎大家下载学习。用java写的项目,适合初学者学习,在这里免费分享给大家,欢迎下载使用。用java写的项目,适合初学者学习,在这里免费分享给大家,欢迎...
该程序显示了 MATLAB.Mouse 中 java.awt.Robot 类的用法,随机改变屏幕上的位置,并同时为您提供鼠标所在的 rgb 值。 为了运行 Matlab_JavaAWRobot_Project.m 你必须下载我提交的 getRobotClass.m 和 JavaRobotClass...
java.awt.color 提供用于颜色空间的类。 java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,...