您的位置:首页 > 编程语言 > Java开发

maven+jetty+spring的jndi配置

2015-12-04 10:49 645 查看
今天想把原来的jdbc连接方式改成jndi。由于网上的资料不全,配起来还是蛮麻烦的。

首先在web.xml下要添加jndi名称参照。

网上没说具体放在web.xml的哪个tag下。我就直接放在web-app下面了。如下:

<web-app>

<resource-ref>

<description>MySQL DataSource Reference</description>

<res-ref-name>sourceDB1</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

放完后,<web-app>会提示不认识<resource-ref>tag的错误,难道是Web Application 2.3的版本低了?

不过不理它也没事。

然后,在pom.xml里要有jetty插件

<!-- jetty插件, 设定context path与spring profile -->

<plugin>

<groupId>org.eclipse.jetty</groupId>

<artifactId>jetty-maven-plugin</artifactId>

<version>${jetty.version}</version>

</plugin>

配置文件啥的都没配,用默认的。

在WEB-INF下生成jetty-env.xml文件,项目原来用的c3p0所以这里仍用这种方式,其他的如dbcp方式,改一下class就行。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure class="org.eclipse.jetty.webapp.WebAppContext">

<New id="mysql" class="org.eclipse.jetty.plus.jndi.Resource">

<Arg></Arg>

<Arg>sourceDB1</Arg>

<Arg>

<New class="com.mchange.v2.c3p0.ComboPooledDataSource">

<Set name="driverClass">com.mysql.jdbc.Driver</Set>

<Set name="jdbcUrl">jdbc:mysql://XX.XX.XX.XXX:3306/XXX?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull</Set>

<Set name="user">root</Set>

<Set name="password">root</Set>

</New>

</Arg>

</New>

</Configure>

最后要去配置spring的数据源,就OK了

<bean id="sourceDB" class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName">

<value>java:comp/env/sourceDB1</value>

</property>

</bean>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: