Weblogic JNDI测试需要注意问题

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服务?

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

 

转载于:https://www.cnblogs.com/dyh200896/p/5721333.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值