Struts2:
error:org.StandardContext startInternal Error filterStart
cause:1.少了一个包,网上都说5个包,不过struts2.3需要8个包(导致出错的原因是我少用了commons-lang-2.5.jar这个包):
2.网上也有包多了出现问题的情况。我放全包,似乎也有问题。 需要的8个包如下:
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
freemarker-2.3.18.jar
javassist-3.11.0.GA.jar
ognl-3.0.4.jar
struts2-core-2.3.1.2.jar
xwork-core-2.3.1.2.jar
hibernate要求:
1.不重复import:包括代码与配置文件的重复
2.映射类必须有空的构造方法
3.映射类必须与表的字段名保持一致(大小写除外)
4.字段名不能使用保留字。
error:Could not get constructor for org.ity.SingleTableENtityPersister
cause: 1.get 与set方法对中谋一个方法与列明相比不一致(缺少了一个字符)。
2.hbm 与表格(映射类)不一致:hbm中少定义了一列, 映射类跟表的数据类型不一致。
jBPM
1.An error occurred while collecting items to be installed
session context was:(profile=epp.package.jee, lipse.equinox.internal.ine.phases.Collect, operand=, action=).
Problems downloading artifact: osgi.lipse.jem.proxy,2.0.201.v200908101600.
File has invalid content:C:\Users\l\AppData\Local\Temp\signatureFile8072959461313428416.jar
cause:这是jre1.7与应用于jBPM4.3的bug,使用jre1.6就好了。
spring:
cause:1.查看tomcat的日志,发现其中存在“java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory”
2.再搜索该错误,发现是缺少 commons-logging.jar,说明spring的dist目录里面所有的jar放进后还是缺少commons-logging.jar的
rom ServletContext resource [/l] is invalid; nested exception l.sax.SAXParseException; lineNumber: 5; columnNumber: 65; cvc-elt.1: 不到元素 'beans' 的声明。
cause:l的文件头有问题,通过网上搜索,换了文件头后问题解决。
3.he type org.aopalliance.aop.Advice cannot be resolved. It is indirectly referenced from required .class files
cause: You could be missing the aopalliance-1.0.jar file. I don't believe this is directly part of the distribution (at least it wasn't for spring-framework-3.0.0.RELEASE). I've since been building with the STS and the Spring Template Project, which builds out a Maven-based project with all the basic dependencies pre-set in l file. If you need to download the jar file, you should be able to find it at: sourceforge/projects/aopalliance/files/
s.factory.BeanCreationException: Error creating bean with name 'transactionService' defined in ServletContext resource [/l]: Error setting property values; nested exc
eption is org.springframework.beans.NotWritablePropertyException: Invalid property 'proxyInterface' of bean class [ansaction.interceptor.TransactionProxyFactoryBean]: Bean property 'proxyInterface' is not writable or has an invalid setter method. Did you mean 'proxyInterfaces'?
cause:将'proxyInterface'修改为'proxyInterfaces',该问题消失.
5.PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'transactionAttributes' threw exception; nested exception is java.lang.IllegalArgumentException: Invalid transaction attribute token: [readonly]
cause:将[readonly] 修改为readOnly,问题解决.注意大小写.
6.Error creating bean with name 'transactionService' defined in ServletContext resource [/l]: Invocation of init method failed; nested exception is org.springframework.aop.framework.AopConfigException: Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces.
cause:缺少cglib的jar包,使用cglib-2.2.2.jar
onService' defined in ServletContext resource [/l]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
cause: 缺少asm包,使用asm-4.0.jar,不过这导致下一个问题.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionService' defined in ServletContext resource [/l]: Invocation of init method failed; nested exception is java.lang.VerifyError: class DebuggingClassWriter overrides final method visit.(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)
cause:这个是asm版本与cglib版本冲突.change ASM-4.0 to ASM-3.3.1 .... that is work to me.
ssh:
cause: 在sessinfactory中配置二级缓存及解决问题.
ned
cause:
mysql:
1.ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
cause: SET FOREIGN_KEY_CHECKS=0
cause: l里面配置多对一时候,名称搞错成student,这个无法到studentid.
4.ERROR 1005 (HY000): Can't create table 'school.students' (errno: 150)
MYECLIPSE:
1.错误是:Cannot return from outside a function or method.
CAUSE: MYECLIPSE 10的bug, 从window -->preferences -->myeclipse -->validation -->javascript validator for Js
files 把Bulid 复选框的勾去掉 就行了
事务传播行为种类
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,
它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:
事务传播行为类型
事务传播行为类型
说明
PROPAGATION_REQUIRED
如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS
支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY
使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW
新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED
以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER
以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED
如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类 似的操作。
spring几种Dao支持配置
务的处理一般来说有两种方式:
一个是依赖特定的资源的事务:如通过JDBC,JTA,Hibernate Transaction。
还有一个就是依赖窗口的参数进行事务管理,像EJB容器事务
spring对于以上两种都有相应的实现,还提供了一些辅助类可供我们选择使用,如基于JDBC,JDO,HIBERNATE的扩展类.而对于依赖 容器的参数化事务管理来说,spring体现出一它的优势,
它本身也是一个容器,但相对EJB容器它来它显得很轻巧(当然在后来插件越来越多的情况下,我 们需要摈弃一些我们不用的模块)。我们不用付出其他的代价,就可以通过spring实现容器的事务管理。
下面就来说说基于JDBC,HIBERNATE这两种方式的事务管理与非事务管理的配置:
取得source连接
首先对于一个DB操作,我们必须要取得DB连接,而在spring下取得这个连接的方式可以采用
1.JNDI
2.配置dataSource(spring方式)或者sessionFactory(hibernate)
且看下面代码:
对于JNDI可以参考如下实现:
Java代码
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc_sdcf</value>
</property>
</bean>
</beans>
对于dataSource方式如下:
Java代码
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@127.0.0.1:1521:oracle</value>
</property>
<property name="username">
<value>test</value>
</property>
<property name="password">
<value>test</value>
</property>
<property name="connectionProperties">
<props />
</property>
</bean>
而对于sessionFactory的方式来说, 我们可以有两种方式来配置它:
一个是基于在spring的dataSource方式上进行配置:
Java代码
<bean id="sessionFactory" class ="hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>com/lgh/hibernate/l</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
而另一个方式就是在l方式上进行配置:
Java代码
<bean id="sessionFactory" class="hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:l" />
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
</bean>
这个l方式可以利用myeclipseIDE导入hibernate功能时自动创建,如下例子:
Java代码
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"hibernate.sourceforge/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.OracleDialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:oracle
</property>
<property name="connec
tion.username">test</property>
<property name="connection.password">test</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="tion.profile">
local_oracle
</property>
<!-- 事 务管理类型,这里我们使用JDBC Transaction
<property name="ansaction.factory_class">net.ansaction.JDBCTransactionFactory
</property> -->
<mapping resource="com/lgh/hibernate/l" />
</session-factory>
</hibernate-configuration>
事务管理(transactionManager)的两种初 始化方式:
一种是根据dataSource来初始化我们的事务管理器,另一种则是根据 sessionFactory(hibernate方式)来初始化我们的事务管理器:
Java代码
<!-- 事 务方式方式一-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local = "dataSource"/>
spring framework版本查看</property>
</bean>
<!-- 事 务配置方式二 -->
<bean id="transactionManager"
class="hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
JDBC在spring下的事务与非事务方式
1.非事务处理方式
jdbc在spring下的非事务方式很简单,它其实就是于JDBC的简单封装:
Java代码
public interface JdbcDao {
public void insert(String[] sql);
}
public class JdbcDaoImpl extends JdbcDaoSupport implements JdbcDao {
public void insert(String[] sql) {
for (String s : sql)
getJdbcTemplate().execute(s);
}
}
这是简单的SQL语句插入,对于配置文件,我们只需要配置一个dataSource跟如下的bean:
Java代码
<bean id="jdbcDao" class="com.lgh.spring.jdbc.JdbcDaoImpl">
<property name="dataSource">
<ref local="dataSource"/>
</property>
</bean>
这种方式的缺点就是它是非事务处理方,即如果后面的数据处理错误时,而这时候如果前面已经进入数据操作了,它将无法回滚。
2.事务处理方式
顾名思义,这种方式是可以回滚前面所做的事情的。它的参数化配置如下:
Java代码
<bean id="jdbcDaoProxy" class="ansaction.interceptor.TransactionProxyFactoryBean">
<property name="proxyTargetClass">
<value>true</value>
</property>
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="target">
<ref local="jdbcDao"/>
</property>
<property name="transactionAttr
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论