目前正在试图搭建一个SSH的架构,之前在 myeclipse8.6 + ssh(struts2.1,spring2.5,hibernate3) + mysql + tomcat6.0 做过例子,当时有老师带着,遇到问题也都解决了。而且,自己练习单表的增删改查时也能独立完成了。但是现在换成了myeclipse2014 + orcle 后,就是通不过去,郁闷中:
现在想一遍解决一遍把问题记录在这里,以备后查:
1,新建一个web project 项目后,只要把spring 和 hibernate 加载之后,部署完毕,启动tomcat就有错误,提示:
731 [main] ERROR org.hibernate.util.JDBCExceptionReporter - Cannot create JDBC driver of class '' for connect URL 'jdbc:oracle:thin:@ORADB01.CCCAR.COM.CN:1521:orac'
732 [main] WARN org.hibernate.cfg.SettingsFactory - Could not obtain connection to query metadata
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'jdbc:oracle:thin:@ORADB01.CCCAR.COM.CN:1521:orac'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
最后发现是配置文件:applicationContext.xml 中 的 dataSource 的bean 少配置了一个属性:driverClassName, 配置该属性后,不再提示如上的错误。
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@192.168.30.130:1521:capp2010">
</property>
<property name="username" value="sapnbgl"></property>
<property name="password" value="sapnbgl"></property>
</bean>
2. 启动tomcat提示 不支持 Oracle9Dialect 的问题
修改了applicationContext.xml 中的相关配置,
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9iDialect
</prop>
</props>
</property>
该错误消失。
3.但是又有了新的错误:
1585 [main] WARN org.hibernate.cfg.SettingsFactory - Could not obtain connection metadata
java.sql.SQLException: 不支持的特性
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
更换之前使用的连接oracle的Jar包,把 ,oracle.jar 改成了:ojdbc14.jar 后,该错误消失。
4. 手工更换了连接oracle 的jar包,把原来的jar包删掉了(关掉 myeclipse后,在文件系统中删掉),再打开myeclipse后,在工程中还能看到删掉的jar包,而且项目名字上有!
这就说明工程中包括的jar包找不到了。不过再关闭打开后,该叹号可能会消失,也看不到被删掉的Jar包了。
5. 提交表但时提示 action 不存在,发现时是struts 中的action 名字和表单提交的action不一样。修改之后搞定。