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

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

时间: 2024-08-20 18:05:01

Weblogic JNDI测试需要注意问题的相关文章

WebLogic使用总结(三)——WebLogic配置JNDI数据源

一.在WebLogic新建针对Oracle数据库的JNDI数据源 进入weblogic管理控制台,此处是远程访问:http://192.168.1.144:7001/console 点击左侧[ 域结构]→[base domain]→[服务]→[数据源] 然后点击右侧[新建]→[般数据源],如下图所示: 填写JDBC数据源的[名称].[jndi名称],选择数据库类型,如选择[oracle],下一步 选择Oracle数据库的驱动程序,如下图所示: 这里选择[Oracle' s Driver (Thi

weblogic诊断案例-AdminServer平均1-2周崩溃

OS2台:RH5.5 WEBLOGIC VERSION:9.2.3 JDK:1.5 64位 weblogic一个管理服务,4个受管(2台服务器做集群,每台服务器2个受管).应用部署后通过一个月测试发现adminserver1-2周就崩溃一次.日志错误信息种类很多如下: ####<2014-6-25 下午05时23分35秒 CST> <Critical> <WorkManager> <dxp1> <AdminServer> <weblogic

通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql

说一下配置: 服务器weblogic 项目使用的是spring管理Bean,数据源配置也是基于Spring的dbcp数据源,并且用log4jdbc进行sql日志打印,采用logback+slf4j日志打印.log4jdbc能够很好打印sql,并且参数也带上了,这在项目开发与后期系统出现的问题查找原因都有很大的帮助. 数据库配置如下: jdbc.driverClassName=net.sf.log4jdbc.DriverSpy jdbc.url=jdbc:oracle:thin:@ip:port/

关于JNDI那点事

一.JNDI是什么? JNDI--Java 命名和目录接口(Java Naming and Directory Interface),是一组在Java应用中访问命名和目录服务的API. 二.JNDI好处 解耦:通过注册.查找JNDI服务,可以直接使用服务,而无需关心服务提供者,这样程序不至于与访问的资源耦合! JNDI优点 写道 JNDI优点  包含了大量的命名和目录服务,使用通用接口来访问不同种类的服务: 可以同时连接到多个命名或目录服务上: 建立起逻辑关联,允许把名称同Java对象或资源关联

atitit.jndi的架构与原理以及资源配置and单元测试实践

atitit.jndi的架构与原理以及资源配置and单元测试实践 1. jndi架构 1 2. jndi实现原理 3 3. jndi资源配置 3 3.1. resin  <database>  节点 3 3.2. tomcat    <resource 标签 4 3.3. 自定义资源 5 4. JNDI测试支持: 5 4.1. D:\workspace\wxb\src\jndi4t.xml 6 4.2. applicationContext.xml 7 4.3. jdbc.propert

weblogic 与jms事例配置

1.在WEBLOGIC12中配置JMS服务器 参考链接:http://blog.csdn.net/gxlstone/article/details/41378949 2.创建java project编写测试代码 (1) 创建一个java project(不是web项目) (2) 将weblogic安装目录中的wlclient.jar加入classpath中(注意:weblogic老版本的话使用weblogic.jar), 具体路径:$Weblogic_HOME\wlserver_10.3\ser

本地java类访问websphere的JNDI

# 问题1.获取数据源时报错 # javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet  # 代码:dataSource=(DataSource)envCtx.lookup("jdbc/admin");  # 原因:本地测试如果要访问远程的JNDI资源,就必须用饱含JNDI环境参数Hashtable初始化I

记一次Weblogic发布Springboot遇到的坑

项目使用的是Springboot,之前直接使用JAR包的方式发布,但在客户这边实施发布的时候,客户使用的容器是weblogic,版本为 10.3.6.  痛苦就此开始! 不过项目组还有另外一个也同样使用了Springboot,他们已经顺利发布了,嗯~ 再百度一下, 哈哈哈,这还不是简简单单! 这个事情,随手扔给下面的技术人员搞定就ok的嘛~   结果一周过去了,跟我说项目启不来.没任何反应 .   我??? 这么简单的事情都搞不定,我要你们何用?  于是我就大发慈悲,来帮帮你们吧~   我仿佛看

Spring整合Weblogic jms实战

本文主要介绍weblogic jms的配置,包括JMS 服务器和JMS 模块(连接工厂.队列.远程 SAF 上下文.SAF 导入目的地.SAF 错误处理)的配置:并在Spring环境下进行消息的监听及发送:为了更多的使用webloigc jms的功能,发送的队列使用saf配置的远程weblogic jms队列(两边的weblogic版本须一致),当然本地也是可以的.本文中demo所使用的软件环境为:weblogic 10.3.6.0.spring 5.1.2.RELEASE 注:saf配置的远程