weblogic加载sqlserver驱动,以及hibernate的设置方法
我是在weblogic10.3.6+sqlserver2008的环境下配置的数据源。其实在tomcat,jboss,websphere等服务器中都提供了配置数据源的功能,大概的配置都很类似。
set WEBLOGIC_CLASSPATH=%PATCH_CLASSPATH%;%JAVA_HOME%\lib\tools.jar;%WL_HOME%\server\lib\weblogic_sp.jar;%WL_HOME%\server\lib\weblogic.jar;%WL_HOME%\common\lib\sqljdbc4.jar
a spring+hibernate
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="onlinexam"></property>
</bean>
b struct + hibernate
hibernate配置文件中,输入
<property name="connection.datasource">onlinexam </property>
<property name="hibernate.dialect">
net.sf.hibernate.dialect.SQLServerDialect
</property>
假设其中weblogic中设置的JNDI名称和数据源名称都为onlinexam
还是回到myeclipse中设置weblogic的地方,点开,将最前面第一步中的sqljdbc4.jar导入到prepend
to classpath,好启动成功。
配置好Hibernate3.jar的应用,被部署到weblogic上后,抛出异常 CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken。
原因:weblogic中已经有了一个antlr的jar包,而且是先引用导致,hibernate不能找到正确的路径
下面google到的三个解决方法:
1: place the antlr-2.7.6rc1.jar into the jdk.xxx/jre/lib/ext
directory of jdk package.
2: set the “hibernate.query.factory_class” to
“org.hibernate.hql.classic.ClassicQueryTranslatorFactory” in the
“hibernate.properties” file.
3: Or add the following sentence into the hibernate.cfg.xml file:
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
在hibernate.properties上,或是在spring的conext xml中,加上一个属性hibernate.query.factory_class,值为 org.hibernate.hql.classic.ClassicQueryTranslatorFactory。
建议使用第一个办法,使用2、3,的时候,如果sql用 select columna,column b from tablec这种类型sql的时候会报错。
五 java直接访问数据源
Context ic = new
InitialContext() ;
DataSource ds = (DataSource) ic.lookup("onlinexam") ;
Connection con = ds.getConnection() ;
//...some code
con.close;
说明:Connection
只是一个接口,用dataSource.getConnection得到的Connetion
是一个依赖具体的 ,连接池实现的类。
所以用close类来返回给数据源