【问题标题】:Get JNDI datasource in Liferay 6.2 Plugin在 Liferay 6.2 插件中获取 JNDI 数据源
【发布时间】: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


    【解决方案1】:

    我从 jndiName 属性值中删除了“java:comp/env/”前缀。这解决了这个问题。这很奇怪,因为容器中的其他应用程序需要“java:comp/env/”前缀。

    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="jdbc/bootstrap"/>
    </bean>
    
    </beans>
    

    【讨论】:

      猜你喜欢
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 2015-04-11
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2023-03-04
      相关资源
      最近更新 更多