2008年3月18日
#
一,错误:java.lang.ClassCastException: oracle.sql.BLOB
一般在存储blob数据时首先要将java.sql.Blob类型转为oracle.sql.BLOB再进行写入操作,在强制转换时就会丢
java.lang.ClassCastException: oracle.sql.BLOB转型错误,形如:
SerializableBlob sb = (SerializableBlob) instance.getBlobData();
BLOB wrapblob = (BLOB) sb.getWrappedBlob();//此行丢出
主要原因少此行:session.refresh(instance, LockMode.UPGRADE);加锁查询出,这样instance中存放的Blob数据就
是oracle.sql.BLOB类型的。
二,错误:SQL Error: 1002, SQLState: 72000,ORA-01002: 提取违反顺序 出现这样的错误一定是事务没有控制好,用ssh
框架请检查调用此功能的method是否在事务控制中,直接用hibernate操作是否有开事务。正确配置好事务就不会有
问题了。
struts2中使用二级联动标签<s:doubleselect/>时总是丢:XML descendants internal method called on incompatible HTMLDocument 错误,检查标签格式,取值以及listKey,listValue,doubleName,boubleList,doubleListKey,doubleListValue.......所有可能出错的地方,但就是一直丢这个错误,后来检查标签<s:doubleselect/>外面有一个<s:form action="" type="post">....</s:form>,问题就出在这里,将action属性赋值,eg:action="xxxxAction.action"就好了,或者干脆将action属性砍掉!一切正常!!
spring2+struts2+hibernate3架构下,在spring中配置quartz(1.6版本)一运行就丢:java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set.......这样的错误,在网上找了很久都提到更换commons-collections.jar到3.0以上的版本,自己试了多次,3.2的也拉下来试了,但是终没有解决,仍然出那个错误,最后将commons-collections.jar删除掉再运行,发现还是报这个错误,所以就怀疑classpath下面肯定还有commons-collection.jar,仔细检查,原来我自己将tomcat下的lib也导入进来了,里面有一个commons-collection.jar(2.0版本),晕啊!马上砍掉,导入commons-collection.jar 3.0版本,一切OK,郁闷了一个晚上!!!!
tomcat控制台会打出如下警告:
WARN - No configuration found for the specified action: 'xxxxx'in namespace: '/'. Form action defaulting to 'action' attribute's literal value.
主要由于在写struts2表单时有给action指定全名,如:<s:form action="xxxAction.do"...>,直接写成<s:form action="xxxAction"...>即可,因为
在struts.xml中struts.action.extension属性有指定啦。
struts2.0.11版本不支持el,因而以前在低版本下写和程式将不能正常运行:
下面是一段分页所用的循环:
<c:forEach var="i" begin="1" end="${requestScope.page.afterPage}" step="1">
<c:if
test="${requestScope.page.indexPage<requestScope.page.totalPage && requestScope.page.indexPage+i<requestScope.page.totalPage}">
<s:url id="afterUrl" value="/photoItemsList.html">
<s:param name="indexPage" value="${requestScope.page.indexPage+i}" /><!-- struts2.0.11中已不支持el,因而<s:url>将取不到相关值-->
</s:url>
<s:a theme="ajax" href="%{afterUrl}" indicator="indicator" showLoadingText="false" targets="pageItems">
<c:out value="${requestScope.page.indexPage+i}" /> </s:a>
</c:if>
</c:forEach>
修改成如下:
<c:forEach var="i" begin="1" end="${requestScope.page.afterPage}" step="1">
<c:set value="${i}" var="var"/>
<c:if test="${requestScope.page.indexPage<requestScope.page.totalPage && requestScope.page.indexPage+i<requestScope.page.totalPage}">
<s:url id="afterUrl" value="/photoItemsList.html">
<s:param name="indexPage" value="#request.page.indexPage+#attr.var" />
</s:url>
<s:a theme="ajax" href="%{afterUrl}" indicator="indicator" showLoadingText="false" targets="pageItems">
<c:out value="${requestScope.page.indexPage+i}" /> </s:a>
</c:if>
</c:forEach>