当前位置: 首页 > 面试题库 >

NameNotFoundException:仅当尝试从Eclipse Kepler发布而不是Indigo时尝试查找“ jdbc”时

轩辕风华
2023-03-14
问题内容

我可以使用oepe 12.1.1.1.1将Web应用从Eclipse Indigo 3.7.2发布到Oracle Weblogic 12c(12.1.1)AdminServer

但是,使用oepe 12.1.2.2导入到Eclipse Kepler 4.3.1中的完全相同的Web应用程序无法发布,并带有以下(相当常见)的异常,我正在尝试找出原因?…

NameNotFoundException:尝试查找’jdbc.oraclexe’时未找到子上下文’jdbc’。解决 ‘’; 剩余名称“ jdbc / oraclexe”];链接剩余名称:“ jdbc / oraclexe”

Weblogic 12c数据源绝对可用,并且我必须假定在从Indigo发布应用程序时,它的配置正确,并且应用程序部署和运行没有问题。

我还假设applicationContext.xml,web.xml和weblogic.xml中的映射是正确的,因为从Indigo发布时再次没有问题。映射如下…

src \ main \ webapp \ WEB-INF \ spring \ applicationContext.xml

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
 <property name="jndiName" value="java:comp/env/jdbc/oraclexe" />
</bean>

src \ main \ webapp \ WEB-INF \ web.xml

<resource-ref>
 <description>Oracle Weblogic Connection Pool (oraclexe)</description>
 <res-ref-name>jdbc/oraclexe</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
 <mapped-name>jdbc/oraclexe</mapped-name>
</resource-ref>

build \ weboutput \ WEB-INF \ weblogic.xml

<resource-description>
 <res-ref-name>jdbc/oraclexe</res-ref-name>
 <jndi-name>oraclexe</jndi-name>
</resource-description>

我想知道weblogic.xml是否在部署过程中不可用(即未将其复制到src \ main \ webapp \ WEB-INF文件夹中),而不是jndiName / resource-ref / res之间的映射问题-ref自己命名?我尝试将weblogic.xml直接放在src \ main \ webapp \ WEB-INF文件夹中,但是遇到相同的异常。

我唯一的另一种想法是Indigo oepe 12.1.1.1.1很乐意发布到Weblogic 12.1.1,但是Kepler oepe 12.1.2不好,我应该发布到Weblogic 12.1.2服务器吗?


问题答案:

经过大约一个星期的反复试验/消除过程,我设法解决了这个问题,并更好地了解了必要的映射。正如Elliott怀疑的那样,这是JNDI查找的问题。当它从Indigo发布到weblogic 12.1.1时,它(意外地)按预期工作(这一点我仍然不确定为什么),这使事实更加复杂。

我最初解决此问题的尝试着重于weblogic.xml中的映射。当我发布到Weblogic服务器时,我错误地认为在解析数据源时已引用了该引用。事实证明并非如此,我的配置不需要weblogic.xml资源描述。

在applicationContext.xml中保持不变…

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
 <property name="jndiName" value="java:comp/env/jdbc/oraclexe" />
</bean>

但是,java:comp / env / jdbc / oraclexe的jndiName值映射到web.xml res-ref-name值jdbc / oraclexe(而不是我错误地假设的weblogic.xml res-ref-name)。 ..

在web.xml中映射的名称已经修改…

<resource-ref>
 <description>Oracle Weblogic console JDBC Data Source</description>
 <res-ref-name>jdbc/oraclexe</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
 <mapped-name>oraclexe</mapped-name>
</resource-ref>

…然后是映射名称值oraclexe映射到Weblogic控制台JDBC数据源JNDI名称。

现在已经完全省略了weblogic.xml中的resource-description节点,因为在此特定配置中未引用该节点。



 类似资料:
  • 我能够发布我的web应用程序到Oracle Weblogic 12c(12.1.1)AdminServer从Eclipse Indigo 3.7.2与oepe12.1.1.1.1 然而,在Eclipse Kepler 4.3.1和oepe 12.1.2.2中导入的同一个web应用程序未能发布,但出现了以下(相当不错的)异常,我正在试图找出原因?。。。 NameNotFoundException:在

  • 我还更新了相关的XML文件,其中提到了spring security bean。我在用Postgres数据库。而且,在我的系统中,一切都运行良好,当我将这些更改提交到QA环境时,登录不工作。我在登录到应用程序时检查了日志,它显示了一些错误。这是日志 还有,如何检查ubuntu服务器中的PostgreSQL JDBC驱动程序版本?有人能帮我解决这个问题吗?谢谢

  • 问题内容: 我有以下活动: 我得到一个NPE,当我尝试调用的,我猜这是因为是一个独立的片段,我有作为之内: 但是,我不确定如何解决此问题,以便可以找到loginButton ID。我以前没有使用过片段,所以我意识到我可能正在使用它们/错误地实现了它们。包含在几个按钮,并没有什么,但一个。 问题答案: 从片段编写代码以初始化按钮,因为您的按钮进入片段布局而不是活动布局。 而从删除登录按钮相关的代码的

  • Eclipse版本:靛蓝服务版本2 正在尝试使用“下载站点”http://download.eclipse.org/nattable/releases/1.5.0/repository/" 要安装"NatTable核心功能" 错误: 收集要安装的项目时出错会话上下文为:(profile=epp.package.rcp,phase=org.eclipse.equinox.internal.p2.en

  • 每当我试图将子对象持久化到JPA中现有的父对象时,就会出现以下错误: 原因:javax。验证。ConstraintViolationException:在组[javax.Validation.groups.Default]的持续时间内,类[store.entidades.Sucursal]的验证失败,约束冲突列表:[ConstraintViolationImpl]{interpolatedMess

  • 我正在将一个ejb应用程序从weblogic迁移到jboss。该应用程序正在寻找使用jndi的ejb。我有ejb-jar.xml和jboss.xml到WEB-INF/中,如下所示 jboss.xml ejb-jar.xml 当我运行应用程序时,它会加载。日志如下所示 在我的代码中,用于查找服务的JNDI名称如下所示 当代码尝试使用以下代码在上下文中查找 ejb 时,它会给出异常 serviceNa