日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Jetty设置JNDI(嵌入式)

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用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。 您可以通過多種方式執行此操作,例如以arun-timeargument的形式提供它,包括將其包含在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配置了它。 要注意的一個重要方面是jty提供商URL和Jetty所需的初始上下文工廠條目。

<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(嵌入式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。