jetty 配置jndi_使用Jetty设置JNDI(嵌入式)

jetty 配置jndi

我在开发工作区上运行嵌入式Jetty,从而节省了一些恶性的编译和部署周期。 我与Jetty的合作不多,易用性使我着迷于它。 我需要设置JNDI才能检索与数据库相关的活动的连接池。 尽管某些地方有完整的文档,但大多数都是分散的。 因此,本帖子旨在成为您通过Jetty设置JNDI的一站式服务。 如果没有,请发表评论,我很乐意为您提供帮助。

因此,首先让我们看看如何设置Jetty以作为嵌入式服务器运行。 我的eclipse项目的文件夹结构如下:

etc文件夹将包含jetty所需的所有配置文件。 您可以从此处下载码头。 对于这个例子,我使用了jetty-6.1.26。

在给定的文件夹位置包括以下jar;

LIB jetty-xxxx.jar,jetty-util-xxxx.jar,servlet-api-xxjar
lib / plus jetty-plus-xxxx.jar
lib /命名 jetty-naming-xxxx.jar

对于我的示例,我已经设置了mysql,因此mysql-connector jar也包含在我的库路径中。

将Jetty安装的etc目录中的所有文件复制到eclipse项目的etc目录中。

为了启用JNDI,我们首先需要包括jetty-plus。 您可以通过多种方式执行此操作,例如将其作为运行时参数提供,包括在WEB-INF中自己的jetty-env.xml中,或将所需的xml代码片段从jetty-plus.xml复制并粘贴到您的jetty.xml。 我选择了后者。 因此,我在jetty.xml中包含了以下代码段;

<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>
<call name="addLifeCycle"><arg><new class="org.mortbay.jetty.deployer.WebAppDeployer"><set name="contexts"><ref id="Contexts"></ref></set><set name="webAppDir"><systemproperty default="." name="jetty.home">/webapps</systemproperty></set><set name="parentLoaderPriority">false</set><set name="extract">true</set><set name="allowDuplicates">false</set><set name="defaultsDescriptor"><systemproperty default="." name="jetty.home">/etc/webdefault.xml</systemproperty></set><set name="configurationClasses"><ref id="plusConfig"></ref></set></new></arg>
</call>

接下来,您需要将与数据源相关的XML片段添加到jetty.xml中。 我已经添加了mysql所需的代码段。 对于任何其他数据库,请检查此链接。

<New id="myds" class="org.mortbay.jetty.plus.naming.Resource"><Arg>jdbc/MySQLDS</Arg><Arg><New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"><Set name="Url">jdbc:mysql://localhost:3306/test</Set><Set name="User">root</Set><Set name="Password">password</Set></New></Arg>
</New>

现在我们已完成所有设置,您所需要做的就是在嵌入式环境中运行码头。 以下代码显示了如何在嵌入式模式下作为主类的一部分运行Jetty;

import java.io.File;import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.handler.HandlerList;
import org.mortbay.jetty.webapp.WebAppContext;
import org.mortbay.xml.XmlConfiguration;public class JettyTest {public static void main(String[] args) throws Exception {Server jetty = new Server();String[] configFiles = {"etc/jetty.xml"};for(String configFile : configFiles) {XmlConfiguration configuration = new XmlConfiguration(new File(configFile).toURI().toURL());configuration.configure(jetty);}WebAppContext appContext = new WebAppContext();appContext.setContextPath("/myapp");File rd = new File("path_to_your_war_file");appContext.setWar(rd.getAbsolutePath());HandlerList handlers = new HandlerList();handlers.setHandlers(new Handler[]{ appContext, new DefaultHandler()});jetty.setHandler(handlers);jetty.start();}
}

就是这样。 现在,您可以查找从Jetty公开的数据源。 为了简便起见 ,我已经使用Spring的JNDIObjectFactoryBean配置了它。 需要注意的重要方面是Jetty所需的jndi提供程序URL和初始上下文工厂条目。

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"><property name="environment"><props><prop key="java.naming.factory.initial">org.mortbay.naming.InitialContextFactory</prop><prop key="java.naming.provider.url">org.mortbay.naming</prop></props></property></bean><bean id="jndiDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"><property name="jndiTemplate"><ref bean="jndiTemplate"/></property><property name="jndiName"><value>jdbc/MySQLDS</value></property></bean>

有了这些,您就可以配置JNDI并通过Spring的JNDI模板进行访问。 我感兴趣的另一件事是使用码头服务器进行远程调试。 经过一番搜索,我发现您需要在运行时配置中包括以下内容作为VM参数。

-Xdebug -Xnoagent -Xrunjdwp:transport = dt_socket,服务器= y,暂挂= n,地址= 8000

这将使您能够在端口8000上进行远程调试。如果有任何疑问,请务必发表评论,我将非常乐意为任何人提供帮助。 当然,如果您确实看到任何错误,也请留下答复,再次感谢您:)。

参考:在My My Journey Through IT博客上,由我们的JCG合作伙伴 Dinuka Arseculeratne 通过 Jetty(嵌入式)设置JNDI 。


翻译自: https://www.javacodegeeks.com/2012/04/setting-up-jndi-with-jetty-embedded.html

jetty 配置jndi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

auot lisp 选择集处理_离散量的计算机处理63_1Cv6

计算机语言运用--数值计算6-离散量的计算机处理63_1Cv6计算机&#xff1a;电子线路组成的计算机器。人与计算机则是通过计算机语言-符号系统说给计算机听而交流。计算机语言有低级语言-机器语言、汇编、高级语言-C/C/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千种之多。作为一…

bzoj 3928: [Cerc2014] Outer space invaders

$f[i][j]$表示消灭起始时间在$(i,j)$内的外星人所花费的最小代价。 考虑在这个区间内距离最远的外星人h&#xff0c;在他的区间中一定要选一个点要开一炮&#xff0c;而且这一炮可以顺便把其他跨过这个点的敌人消灭&#xff0c;剩下只需消灭没有跨过这个点的敌人。 枚举开炮时间…

HTML页面代码移动端和pc兼容,pc端网站如何实现移动端适配?

4、流动布局(fluidgrid)“流动布局”的含义是&#xff0c;各个区块的位置都是浮动的&#xff0c;不是固定不变的。.main{float:right;width:70%;}.leftBar{float:left;width:25%;}float的好处是&#xff0c;如果宽度太小&#xff0c;放不下两个元素&#xff0c;后面的元素会自动…

linkedblockingqueue 后 take 不消化_消化不良的成因及护理

疾病名称&#xff1a;消化不良就诊科室&#xff1a;消化内科疾病成因心理和精神的不良应激&#xff1a;患者的精神不愉快、长期闷闷不乐或突然受到猛烈的刺激等均可引起。不良饮食习惯&#xff1a;包括刺激性食物&#xff08;咖啡、浓茶、甜食、油腻、生冷等&#xff09;和不良…

功能与命令式编程。 Java 8中的斐波那契,素数和阶乘

有多种编程风格/范例&#xff0c;但是两种著名的风格是Imperative和Functional 。 命令式编程是最主要的范例&#xff0c;因为几乎所有主流语言&#xff08;C &#xff0c;Java&#xff0c;C&#xff03;&#xff09;都在推广它。 但是在最近几年中&#xff0c;函数式编程开始…

Yandex.Algorithm 2011 Round 2 D. Powerful array 莫队

题目链接&#xff1a;点击传送D. Powerful arraytime limit per test5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAn array of positive integers a1, a2, ..., an is given. Let us consider its arbitrary subarray al, al  …

html 形状div,div+css实现各种形状(精心整理)

1.正方形.div {width: 100px;height: 100px;background: red;}2.矩形.div {width: 200px;height: 100px;background: red;}3.圆形.div {width: 100px;height: 100px;background: red;-moz-border-radius: 50px;-webkit-border-radius: 50px;border-radius: 50px;}4.椭圆.div {w…

4.1.5事件

用事件有一种监听的思想 一个事件对应一个委托 事件是委托类型 一个事件对应一个委托&#xff0c;委托可以对应多个方法 如气球爆炸了 气球的反应 小孩的反应 事件源有代码自动激发事件 扔出事件 —————————————— 3.只能在类的内部触发事件 4.可以在内部…

485不用双绞线可以吗_现在在上海,挡风玻璃可以一个标志都不用贴吗?

问近日&#xff0c;有市民咨询&#xff1a;现在在上海&#xff0c;车上挡风玻璃可以一个标志都不用贴吗&#xff1f;答可以一个标志都不贴。自2020年3月1日起&#xff0c;本市机动车在本市办理注册、变更、转移登记和核发检验标志、补换检验标志业务时&#xff0c;将自动生成检…

Java和Python中类似Kotlin的生成器,续:附加参数

介绍 在今天的文章中&#xff0c;我们将继续上周的文章&#xff0c;内容涉及用Java和Python制作类似于Kotlin的构建器&#xff0c;扩展构建器API以采用一些可选参数来提高灵活性。 我们继续我们HTML示例&#xff0c;尝试添加标记属性&#xff0c;例如类&#xff0c;id和样式。 …

vs2015 html页面没有试图,vs2015 web设计视图假死,求帮助

你好&#xff0c;首先&#xff0c;请在发送一个请求去验证你的MSDN账号。然后&#xff0c;从你的描述来看&#xff0c;即使创建新项目&#xff0c;VS的design界面出现不了还是你的VS安装有问题。我们可以从两方面考虑&#xff1a;1.系统环境建议你检查一下Windows系统更新&…

nodejs 之 nvm和pm2

说道 node不得不提到nodejs的版本管理nvm和Node应用的进程管理器pm2。 当然&#xff0c;关于这两个的介绍的文章那么多&#xff0c;随意baidu,bing,google就可以。 我这里是给自己打一个标签&#xff0c;方便日后 查询&#xff0c; 二是方便一些和我一样的小白&#xff0c;能速…

2021上饶市高考中考成绩查询,2021年上饶中考成绩公布查询时间 上饶中考成绩查询方式入口...

2018年上饶中考成绩公布查询时间 上饶中考成绩查询方式入口2018年上饶高考结束了&#xff0c;可是上饶中考又来了!6月注定是一个不平淡的月份。又一大批孩子朝着青春出发踏着坚定的脚步&#xff0c;行走在如火的六月。宁静的清晨&#xff0c;静谧的夜&#xff0c;那条反反复复走…

vue 实例化几种方式_vue注册组件的几种方式总结

vue注册组件的几种方式总结 1、全局注册(这种方式注册组件必须在vue实例化之前声明) Vue.component(tag-name,{}) 2、局部注册 var Child = {template: A custom component! } new Vue({// ... components: {// 将只在父模板可用 my-component: Child } }) 3、扩展实例 // 定…

gson json和类转换_带有GSON和抽象类的JSON

gson json和类转换经过多年使用org.json库在Java中支持JSON数据交换格式后&#xff0c;我已切换到Google Gson 。 org.json是一个较低层的库&#xff0c;因此您必须创建JSONObject&#xff0c;JSONArray&#xff0c;JSONString等…并执行其他低层工作。 Gson简化了这项工作。 它…

自考18年4月计算机应用基础,2019年自学考试计算机应用基础试题(18)

2019年4月自考报名已经拉开序幕&#xff0c;同学们可以开始准备自考复习&#xff0c;下面是2019年自学考试计算机应用基础试题(18)&#xff0c;了解更多自学考试资讯请锁定自学考试网&#xff0c;更有海量模拟试题&#xff0c;精品复习资料等你来下载!1.Windows 中删除文件夹的…

git中文件的三种状态

用xcode的时候&#xff0c;左侧栏文件的邮右边时不时会看到M&#xff0c;A这一类的字母。当然&#xff0c;这些以后再写上。先说一下git里文件的三种状态 已提交&#xff08;committed&#xff09; 已经提交的本地仓库&#xff08;repository&#xff09;&#xff0c;需要手动…

创建一个带参数的formgoup_gin框架如何获取带文件的formData请求?

**前端代码如下**function upFile() {var formData new FormDatavar file document.getElementById("upload").files[0]var text document.getElementById("text").valueformData.append("upload",file)formData.append("text",tex…

如何从URL查询字符串获得/附加视图参数(示例)?

让我们剖析几个简单的用例&#xff0c;并查看视图参数的工作原理&#xff08;视图参数名称不是强制性的&#xff0c;以匹配通过URL查询字符串传递的请求参数&#xff0c;但在本文中&#xff0c;我们将重点讨论这种情况&#xff09;&#xff1a; 情况1 在index.xhtml页面中&…

桌面怎么设置 计算机 网络,Win10 10130桌面电脑网络图标怎么设置?

越来越多朋友的计算机安装Windows10系统&#xff0c;现在Windows10系统已经升级到10130版&#xff0c;我的计算机升级到了10130版。安装Windows10的10130版系统后&#xff0c;桌面只有回收站和软媒的图标&#xff0c;如何把电脑、网络、用户的文件、控制面板等图标设置到桌面上…