码迷,mamicode.com
首页 > Web开发 > 详细

Weblogic JNDI测试需要注意问题

时间:2016-07-30 18:22:00      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

weblogic jndi的使用,主要参考了博主 孤傲苍狼 的 WebLogic使用总结(三)——WebLogic配置JNDI数据源。写得非常详细,谢谢分享。在按葫芦画瓢的过程中出现了一些问题,在此记录下。

weblogic版本为WebLogic Server 版本: 10.3.6.0,IDE为myeclipse 8.5。

使用的过程中遇到两个问题。

1、使用tomcat部署的web应用,能否访问weblogic部署的jndi服务?

2、使用weblogic部署的web应用在使用jndi连接数据库过程中遇到的问题。

 

第一个问题因为之前没有一个明确的不能的认识,所以,在测试的过程中,试了遇到各种各样的问题。

1)java.lang.ClassCastException: weblogic.jdbc.common.internal.ConnectionEnv cannot be cast to java.io.Serializable


java.lang.ClassCastException: weblogic.jdbc.common.internal.ConnectionEnv cannot be cast to java.io.Serializable
at weblogic.iiop.IIOPOutputStream.writeObject(IIOPOutputStream.java:2266)
at weblogic.utils.io.ObjectStreamClass.writeFields(ObjectStreamClass.java:414)
at weblogic.corba.utils.ValueHandlerImpl.writeValueData(ValueHandlerImpl.java:235)
at weblogic.corba.utils.ValueHandlerImpl.writeValueData(ValueHandlerImpl.java:225)
at weblogic.corba.utils.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:182)
at weblogic.iiop.IIOPOutputStream.write_value(IIOPOutputStream.java:1963)
at weblogic.iiop.IIOPOutputStream.write_value(IIOPOutputStream.java:2001)
at weblogic.iiop.IIOPOutputStream.writeObject(IIOPOutputStream.java:2266)
at weblogic.jdbc.common.internal.RmiDataSource_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)


这种情况网上所说各有说法,尝试了之后会报其他问题。

按照classPath引入weblogic.jar所在位置的路径,亦无法解决问题。

来回折腾,各种说法中,这种说法"基于安全,tomcat部署的服务无法从weblogic部署的jndi中获取到序列化的对象"有一定的道理。

 

 

所以,转向了使用weblogic部署的web应用来测试weblogic部署的jndi数据源。

以下要说明的是第二种情况:weblogic部署的web应用在使用jndi连接数据库过程中遇到的问题。

 

因之前尝试中无法确定需要对哪些jar进行引用。所以也会出现各种各样的问题。

最主要的问题是:

Error creating bean with name ‘weblogic.wsee.jaxws.client.async.AsyncTransportProvider‘

开始尝试着将weblogic的server下lib的所有jar拿到web的lib部署,或者增减一些jar进行测试,依然会出现各种问题。

https://community.oracle.com/thread/2451478?tstart=0中了解到,这可能是weblogic的一个缺陷,或者说一个"特性",因为你乱放jar,给你报个错也很正常。

 

所以,我将classpath所引用的所有weblogic的jar清除,web-inf的lib下只保留wlclient.jar。

这样,weblogic部署的web应用启动正常,访问jndi也成功了。

 

使用tomcat部署的web应用,能否访问weblogic部署的jndi服务?

这个问题,如果哪位大侠知道的,恳请指教下。

 

Weblogic JNDI测试需要注意问题

标签:

原文地址:http://www.cnblogs.com/dyh200896/p/5721333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!