Spring+iBATIS在tomcat环境下连接weblogic数据源报错,Failed to Generate Wrapper Class

问题描述

情况是这样的,我再tomcat环境下开发Spring+iBATIS整合的DAO层应用,配置数据源时是这样配置的:<beanid="dataSource"class="com.inspur.osgi.datasource.JNDIDataSource"destroy-method="close"><propertyname="providerUrl"value="t3://127.0.0.1:7001"/><propertyname="initialContextFactory"value="weblogic.jndi.WLInitialContextFactory"/><propertyname="jndiName"value="jndi_orcl_rmw"/></bean>其中JNDIDataSource是我自己写的一个类,代码如下:publicclassJNDIDataSourceimplementsDataSource{DataSourceds=null;privateStringproviderUrl;privateStringinitialContextFactory;privateStringjndiName;privatevoidcreateDataSource(){try{Propertiespro=newProperties();pro.setProperty(Context.PROVIDER_URL,this.providerUrl);pro.setProperty(Context.INITIAL_CONTEXT_FACTORY,this.initialContextFactory);Contextctx=newInitialContext(pro);ds=(DataSource)ctx.lookup(this.jndiName);Connectioncon=this.getConnection();Statementst=con.createStatement();ResultSetrs=st.executeQuery("select*fromc_ne_regionorderbyint_id");while(rs.next()){System.out.println(rs.getString("int_id"));}}catch(Exceptionex){ex.printStackTrace();}}privatevoiddoCreateDataSource(){if(this.ds==null&&this.providerUrl!=null&&this.initialContextFactory!=null&&this.jndiName!=null){createDataSource();}}//包装了ds的方法//settersandgetters,在set属性时调用createDataSource()方法生成内部的ds}然后系统启动的时候createDataSource方法里可以得到connection,也可以查询出数据,但是同时在this.getConnection()这句报错:java.lang.LinkageError:loaderconstraintviolation:loader(instanceofweblogic/utils/classloaders/GenericClassLoader)previouslyinitiatedloadingforadifferenttypewithname"javax/transaction/xa/XAResource"atjava.lang.Class.getDeclaredMethods0(NativeMethod)atjava.lang.Class.privateGetDeclaredMethods(Class.java:2427)atjava.lang.Class.privateGetPublicMethods(Class.java:2547)atjava.lang.Class.getMethods(Class.java:1410)atweblogic.utils.wrapper.WrapperFactory.getGeneratedMethods(WrapperFactory.java:264)atweblogic.utils.wrapper.WrapperFactory.generateWrapperClass(WrapperFactory.java:394)atweblogic.utils.wrapper.WrapperFactory.getWrapperClass(WrapperFactory.java:237)atweblogic.utils.wrapper.WrapperFactory.getWrapperClass(WrapperFactory.java:200)atweblogic.utils.wrapper.WrapperFactory.createWrapper(WrapperFactory.java:189)atweblogic.jdbc.wrapper.JDBCWrapperFactory.getWrapper(JDBCWrapperFactory.java:182)atweblogic.jdbc.rmi.SerialConnection.readResolve(SerialConnection.java:117)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atjava.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1061)atjava.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1762)atjava.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)atjava.io.ObjectInputStream.readObject(ObjectInputStream.java:351)atweblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:120)atweblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:120)atweblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:56)atweblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:164)atweblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:293)atweblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:247)atweblogic.jdbc.common.internal.RmiDataSource_814_WLStub.getConnection(UnknownSource)atcom.inspur.osgi.datasource.JNDIDataSource.getConnection(JNDIDataSource.java:50)atcom.inspur.osgi.datasource.JNDIDataSource.createDataSource(JNDIDataSource.java:31)atcom.inspur.osgi.datasource.JNDIDataSource.doCreateDataSource(JNDIDataSource.java:45)atcom.inspur.osgi.datasource.JNDIDataSource.setJndiName(JNDIDataSource.java:106)。。。<2010-5-25下午02时17分43秒CST><Info><JDBC><BEA-001155><Thefollowingexceptionhasoccurred:java.lang.RuntimeException:FailedtoGenerateWrapperClassatweblogic.utils.wrapper.WrapperFactory.createWrapper(WrapperFactory.java:183)atweblogic.utils.wrapper.WrapperFactory.createWrapper(WrapperFactory.java:190)atweblogic.jdbc.wrapper.JDBCWrapperFactory.getWrapper(JDBCWrapperFactory.java:182)atweblogic.jdbc.rmi.SerialConnection.readResolve(SerialConnection.java:117)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atjava.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1061)atjava.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1762)atjava.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)atjava.io.ObjectInputStream.readObject(ObjectInputStream.java:351)atweblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:120)atweblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:120)atweblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:56)atweblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:164)atweblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:293)atweblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:247)atweblogic.jdbc.common.internal.RmiDataSource_814_WLStub.getConnection(UnknownSource)atcom.inspur.osgi.datasource.JNDIDataSource.getConnection(JNDIDataSource.java:50)atcom.inspur.osgi.datasource.JNDIDataSource.createDataSource(JNDIDataSource.java:31)atcom.inspur.osgi.datasource.JNDIDataSource.doCreateDataSource(JNDIDataSource.java:45)atcom.inspur.osgi.datasource.JNDIDataSource.setJndiName(JNDIDataSource.java:106)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:840)atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:651)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1276)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)atjava.security.AccessController.doPrivileged(NativeMethod)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)atorg.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)atorg.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)atorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)atorg.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69)atorg.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355)atorg.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)atorg.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)atorg.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)atjava.lang.Thread.run(Thread.java:619)但是同样的weblogic服务器同样的代码如果是直接在main方法里运行时就不会有问题,请高手赐教!

解决方案

解决方案二:
是weblogic自带的分数是数据源jar包和你应用的jar包冲突。
解决方案三:
楼上的朋友能详细解释一下吗
解决方案四:
我猜你的应用的引用的jar包中有一个jar包包含类javax/transaction/xa/XAResource,weblogic也包含这个javax/transaction/xa/XAResource,冲突了,发布到weblogic后把你引用的jar包中包含类javax/transaction/xa/XAResource的删掉试试看
解决方案五:
还有个问题,就是在通过JNDI获得了DataSource对象后,居然无法Cast成javax.sql.DataSource的实例对象。代码如下:ds=(DataSource)ctx.lookup(this.jndiName);运行时抛出异常ClassCastException,无法将RmiDataSource_814_WLStub转换成DataSource(这里省略了包名),我查了一下api,RmiDataSource_814_WLStub确实是实现了一个集成了DataSource的接口,不知为何,只能使用RmiDataSource_814_WLStub类型。然后在运行ds.getConnection()时报错,只有一句话:UnabletoaccessI18npropertiesfile,weblogic/i18n/i18n.properties:java.io.FileNotFoundException:http://192.168.200.55:7001/bea_wls_internal/classes/weblogic/i18n/i18n.properties不知如何解决,我是用的Spring-DM搭建的OSGi应用程序

时间: 2016-07-25

Spring+iBATIS在tomcat环境下连接weblogic数据源报错,Failed to Generate Wrapper Class的相关文章

mingw-Code::Blocks Windows环境下编译HelloWorld程序报错,求高手支招!

问题描述 Code::Blocks Windows环境下编译HelloWorld程序报错,求高手支招! 很简单的Hello World 程序,编译时提示: D:MinGWincludec++3.4.5bitscodecvt.h|475 这个文件中引用的 bits/codecvt_specializations.h 文件找不到 请问是哪里出了问题? ?

win7 64位下 excel 连接odbc 数据源报错,32位下可以正常

问题描述 win7 64位下 excel 连接odbc 数据源报错,32位下可以正常 odbc数据源32位 excel 32位 配置的odbc数据源如图所示 在excel中 连接到odbc数据源 这种错误怎么解决 解决方案 你选错驱动了,这是Oracle的驱动,不是Access的. 解决方案二: WIN7 64位 ODBC连接Oracle 32位报错问题

ubuntu-Ubuntu14下hadoop1.2.1环境下Hive1.1.1报错,求大神解决,谢谢

问题描述 Ubuntu14下hadoop1.2.1环境下Hive1.1.1报错,求大神解决,谢谢 Logging initialized using configuration in jar:file:/usr/local/hadoop/lib/hive-common-1.1.1.jar!/hive-log4j.properties Exception in thread "main" java.lang.UnsupportedClassVersionError: com/facebo

服务器-centOS tomcat 环境下的301重定向问题,求指教

问题描述 centOS tomcat 环境下的301重定向问题,求指教 最近接受一个任务,有关域名301重定向的问题向大家请教,问题如下: 1.301重定向只能通过代码的形式实现么? 是否一定要用一个虚拟服务器来接收根域名的请求,然后重定向到二级域名, 如果是的话还请各位能提一些具体实现的建议 2. 域名访问返回的http状态代码为302 请直接这种情况是怎么产生的,我该怎么定位和解决. 多谢各位 解决方案 一般是用现成的服务器框架,这样可以很容易返回301 302也是重定向.一般是地址换了地方

quartz集群-Quartz+Spring+Hibernate集群环境下 ClusterManager: Error managing cluster: null

问题描述 Quartz+Spring+Hibernate集群环境下 ClusterManager: Error managing cluster: null [2013-12-19 14:43:44] [ERROR] QuartzScheduler_quartzScheduler-NON_CLUSTERED_ClusterManager) - ClusterManager: Error managing cluster: null java.lang.reflect.UndeclaredThro

hibernate 在tomcat环境下运行的问题

问题描述 hibernate 在tomcat环境下运行的问题 新建了一个hibernate工程 在 main方法内运行正常实现查询. 将其在tomcat中启动后,hibernate抛出以下异常, java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration 请问是哪的问题吗. 解决方案 tomcat7 运行在windows环境下乱码问题的解决[Hibernate框架开发之一]搭建Hibernate环境并成功运行第一个项目Hel

jmx-【防火墙已关闭】帮看下JMX本地Main方法连接取Broker报错

问题描述 [防火墙已关闭]帮看下JMX本地Main方法连接取Broker报错 **帮我看下JMX本地Main方法连接取Broker报错 (No broker is found at any of the 1 configured urls)** JConsole通过jmxrmi连接 service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi本地正常 activemq.xml配置 <!-- Licensed to the Apache Software

在没有spring等框架的情况下实现多数据源的问题

问题描述 在没有spring等框架的情况下实现多数据源的问题 系统是没有spring,hibernate等框架.要求就是系统想要同时连多个数据库,可以执行多个数据库的操作.我是新手,那位大哥帮帮忙!!!! 解决方案 直接用jdbc访问数据库http://blog.csdn.net/xinxin19881112/article/details/4511566http://blog.csdn.net/xiyoukeke/article/details/6370604http://www.cnblog

ssh使用tomcat中配置好的c3p0数据源报错

问题描述 ssh使用tomcat中配置好的c3p0数据源报错 tomcat中对应项目的xml文件配置为: <?xml version="1.0" encoding="UTF-8"?> <Context path="/Village" docBase="D:WorkspacesMyEclipse 10webprojectVillageWebRoot" reloadable= "true" p