weblogic加载sqlserver驱动,以及hibernate的设置方法

一 weblogic配置sqlserver数据源

我是在weblogic10.3.6+sqlserver2008的环境下配置的数据源。其实在tomcat,jboss,websphere等服务器中都提供了配置数据源的功能,大概的配置都很类似。

简单的讲述一下我的配置,以及应该注意的地方。
第一步:下载sqljdbc的驱动,如果是64位jdk,那么需要用sqljdbc4.jar
第二步:就是把我们的sqlserver2008驱动添加到你的classpath中,
<1>.就是把它放到你的E:\bea\weblogic90\common\lib下面,我们在打开E:\bea\weblogic90\common\bin文件下的commEnv.cmd文件。找到下面这个位置:
@rem set up WebLogic Server's class path
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
在最后面加上sqljdbc4.jar驱动的位置,其中WL_HOME=E:\bea\weblogic90,上面红色的部分就是新加上的。
<2>.也可以在E:\bea\user_projects\domains\mydomain\bin下面的setDomainEnv.cmd文件中配置。在最后面的位置上找到:set CLASSPATH=%PRE_CLASSPATH%;%WEBLOGIC_CLASSPATH%;%POST_CLASSPATH%;%WLP_POST_CLASSPATH%;%WL_HOME%\integration\lib\util.jar;%WL_HOME%\common\lib\sqljdbc4.jar
在最后面加上mysql-connector-java-5.0.7-bin.jar驱动的位置,其中WL_HOME=E:\bea\weblogic90,上面红色的部分就是新加上的。
然后,启动weblogic,在控制台console上,配置数据源。
驱动程序选择
Microsoft ‘s MS SQL Server Driver(Type 4) version:2005 and later.
好了,其他步骤省略,好到此配置成功。
二 myeclipse中配置weblogic,
myeclipse中先设置weblogic里,weblogic像tomcat一样设置,设置好后,如果不能在myeclipse中启动,那么是因为盗版的缘故。
可以上网下载破解程序。先按照说明破解,之后,
在myeclipse中,设置weblogic的地方,点开下拉框。点击path,
将破解包中的weblogic_crack.jar(用放到bea主目录下的weblogic_crack.jar即可),导入到prepend to classpath中即可。
该方法设和 weblogic8--10的版本,后期是否适用,暂不清楚
三 hibernate 配置weblogic JNDIname

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

启动weblogic,如果提示JndiObjectFactoryBean加载失败的信息,那么,

还是回到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类来返回给数据源

posted @ 2012-08-30 21:03  丁河七怪  阅读(474)  评论(0编辑  收藏  举报