宁陵网站建设,做搜狗手机网站快速排,商贸有限公司门头照片,网站建设主管的策划案我在开发工作区上运行嵌入式Jetty#xff0c;从而节省了一些编译和部署恶性循环的时间。 我与Jetty的合作不多#xff0c;易用性使我着迷于它。 我需要设置JNDI才能检索与数据库相关的活动的连接池。 尽管某些地方有完整的文档#xff0c;但大多数都是分散的。 因此#xf… 我在开发工作区上运行嵌入式Jetty从而节省了一些编译和部署恶性循环的时间。 我与Jetty的合作不多易用性使我着迷于它。 我需要设置JNDI才能检索与数据库相关的活动的连接池。 尽管某些地方有完整的文档但大多数都是分散的。 因此本帖子旨在成为您通过Jetty设置JNDI的一站式服务。 如果没有请务必发表评论我很乐意为您提供帮助。 因此首先让我们看看如何设置Jetty以作为嵌入式服务器运行。 我的eclipse项目的文件夹结构如下 etc文件夹将包含jetty所需的所有配置文件。 您可以从此处下载码头。 对于这个例子我使用了jetty-6.1.26。 包括来自给定文件夹位置的以下jar LIB jetty-xxxx.jarjetty-util-xxxx.jarservlet-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 idplusConfig typejava.lang.StringItemorg.mortbay.jetty.webapp.WebInfConfiguration/ItemItemorg.mortbay.jetty.plus.webapp.EnvConfiguration/ItemItemorg.mortbay.jetty.plus.webapp.Configuration/ItemItemorg.mortbay.jetty.webapp.JettyWebXmlConfiguration/ItemItemorg.mortbay.jetty.webapp.TagLibConfiguration/Item/Arraycall nameaddLifeCycleargnew classorg.mortbay.jetty.deployer.WebAppDeployerset namecontextsref idContexts/ref/setset namewebAppDirsystemproperty default. namejetty.home/webapps/systemproperty/setset nameparentLoaderPriorityfalse/setset nameextracttrue/setset nameallowDuplicatesfalse/setset namedefaultsDescriptorsystemproperty default. namejetty.home/etc/webdefault.xml/systemproperty/setset nameconfigurationClassesref idplusConfig/ref/set/new/arg
/call 接下来您需要将与数据源相关的XML片段添加到jetty.xml中。 我已经添加了mysql所需的代码段。 对于任何其他数据库请检查此链接。 New idmyds classorg.mortbay.jetty.plus.naming.ResourceArgjdbc/MySQLDS/ArgArgNew classcom.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSourceSet nameUrljdbc:mysql://localhost:3306/test/SetSet nameUserroot/SetSet namePasswordpassword/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 idjndiTemplate classorg.springframework.jndi.JndiTemplateproperty nameenvironmentpropsprop keyjava.naming.factory.initialorg.mortbay.naming.InitialContextFactory/propprop keyjava.naming.provider.urlorg.mortbay.naming/prop/props/property/beanbean idjndiDataSource classorg.springframework.jndi.JndiObjectFactoryBeanproperty namejndiTemplateref beanjndiTemplate//propertyproperty namejndiNamevaluejdbc/MySQLDS/value/property/bean 这样您便拥有了配置JNDI并通过Spring的JNDI模板进行访问所需的全部功能 。 我感兴趣的另一件事是使用码头服务器进行远程调试。 经过一番搜索后我发现您需要在运行时配置中包含以下内容作为VM参数。 -Xdebug -Xnoagent -Xrunjdwptransport 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