【发布时间】:2016-03-23 07:59:45
【问题描述】:
我有一个 Liferay 6.2 挂钩,我正在尝试在运行 Liferay 的 Weblogic 12c 容器中配置 JNDI 数据源。
数据源配置正确,运行在同一 Weblogic 托管服务器中的其他 Web 应用程序可以访问,所以我知道这不是问题。
我正在使用 Spring 检索数据源,使用与服务器上运行的其他 Web 应用程序完全相同的配置。
我已使用与服务器上运行的其他 Web 应用完全相同的配置在 web.xml 中将数据源声明为资源引用。
我看到的错误信息是:
javax.naming.NameNotFoundException:尝试在 /app/webapp/liferay-portal-6.2.0-ce-ga1.war/1037207272 中查找 comp/env/jdbc/bootstrap 时。剩余名称 'comp/env/jdbc/bootstrap'
好像 Weblogic 的 JNDI 上下文对钩子不可用。
spring-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
<bean id="bootstrapDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/bootstrap"/>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<resource-ref>
<description>Datasource</description>
<res-ref-name>jdbc/bootstrap</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
谢谢 保罗
【问题讨论】:
标签: java spring liferay weblogic jndi