Jetty嵌入式服务器的JNDI快速配置指南

 

J etty提供HTTP服务器、客户端,它是javax.sevlet的容器。而这些组件都是开源且可商用的。它被广泛的应用在工程与产品中。它可以嵌入的设备,工具,框架,应用服务器以及集成。Jetty项目的核心由Eclipse组织提供服务器。Codehaus提供附件,集成及扩展,并为其提供旧版本的存放主机。

 

其官方页面为: http://www.mortbay.org/jetty/

 

现在就来看怎样在Jetty中配置JNDI数据源,以及如何在Spring工程中使用。


让Jetty在Web工程中支持java:comp/env查找,作为可选特性,需要做一些配置。让我们来看看要怎样配置。首先,使JNDI在Web应用中可用,需要在Jetty.xml文件中,加入如下配置:

 

 

<!-- ======================================================= -->
<!-- Configure jndi                                          -->
<!-- ======================================================= -->
<Array id="plusConfig" type="java.lang.String">
  <Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
  <Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
  <Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
  <Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
  <Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
</Array>

<New id="orclc3p0" class="org.mortbay.jetty.plus.naming.Resource">
  <Arg>jdbc/orclc3p0</Arg>
  <Arg>
    <New class="org.apache.commons.dbcp.BasicDataSource">
      <Set name="driverClassName">org.postgresql.Driver</Set>
      <Set name="url">jdbc:oracle:thin:@192.168.0.173:1521:orcl</Set>
      <Set name="username">test</Set>
      <Set name="password">test</Set>
      <Set name="maxActive">10</Set>
    </New>
  </Arg>
</New>
 

然后在WebAppContext中添加plusConfig

 

 

<New id="application" class="org.mortbay.jetty.webapp.WebAppContext">
  ...
  <Set name="ConfigurationClasses"><Ref id="plusConfig" /></Set>
  ...
</New>
 

然后需在Web.xml或容器的WebDefault.xml文件中添加:

 

 

<resource-ref>
  <res-ref-name>jdbc/orclc3p0</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
 

Spring中使用的方法为:

 

 

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

 

如果工程使用了maven,需在工程的pom.xml文件中添加包含了org.mortbay.jetty.plus.naming.Resource的jar依赖:

 

<dependency>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-plus</artifactId>
  <version>${jetty-version}</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-naming</artifactId>
  <version>${jetty-version}</version>
  <scope>provided</scope>
</dependency>
 其中 ${jetty-version}为6.1.9版本

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值