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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

使用Maven,Jetty和Tomcat在嵌入式容器中运行Java Web应用程序

發布時間:2023/12/3 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Maven,Jetty和Tomcat在嵌入式容器中运行Java Web应用程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在開發Java Web應用程序時,從“真實”環境中獲得快速反饋非常實用。 在本文中,我將探討如何在嵌入式容器Jetty或Tomcat中運行帶有Maven的Java Web應用程序。 在Podcastpedia.org網站的支持下,我將展示如何配置它們以開發podcastpedia項目。

先決條件

您應該已經安裝了Maven并至少安裝了Java 7 。 理想情況下,您可以自己設置podcastpedia項目,以進行實際操作。

Jetty Maven插件

插件配置

<!-- http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html --> <plugin><groupId>org.eclipse.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>${jetty.version}</version><configuration><jettyConfig>${project.basedir}/src/main/resources/config/jetty9.xml</jettyConfig><stopKey>STOP</stopKey><stopPort>9999</stopPort><scanIntervalSeconds>5</scanIntervalSeconds><scanTargets><scanTarget>${project.basedir}/src/main</scanTarget><scanTarget>${project.basedir}/src/test</scanTarget></scanTargets><contextXml>${project.basedir}/src/test/resources/jetty-context.xml</contextXml><webAppConfig><contextPath>/</contextPath></webAppConfig></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.connector.java.version}</version></dependency><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>${java.mail.version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jdbc</artifactId><version>${tomcat.jdbc.version}</version></dependency></dependencies> </plugin>

筆記:

  • jettyConfig指向Jetty配置文件; 請參閱下一節以獲取更多說明
  • 定義的文件夾( scanTargets ),其中Jetty每5秒查找一次更改( scanInterval
  • 定義的外部依賴關系以連接到數據庫并發送電子郵件

Jetty.xml配置文件

Jetty xml配置文件

<?xml version="1.0" encoding="UTF-8"?> <Configure class="org.eclipse.jetty.webapp.WebAppContext"><New id="pcmdbDS" class="org.eclipse.jetty.plus.jndi.Resource"><Arg>jdbc/pcmDB</Arg><Arg><New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"><Set name="Url">jdbc:mysql://localhost:3307/pcmDB?allowMultiQueries=true</Set><Set name="User">pcm</Set><Set name="Password">pcm_pw</Set></New></Arg></New><New id="mailSessionId" class="org.eclipse.jetty.plus.jndi.Resource"><Arg>mail/Session</Arg><Arg><New class="org.eclipse.jetty.jndi.factories.MailSessionReference"><Set name="user">test-dev@podcastpedia.org</Set><Set name="password">test-dev</Set><Set name="properties"><New class="java.util.Properties"><Put name="mail.host">mail.podcastpedia.org</Put><Put name="mail.debug">true</Put><Put name="mail.transport.protocol">smtp</Put><Put name="mail.smtp.port">25</Put><Put name="mail.smtp.auth">true</Put></New></Set></New></Arg></New> </Configure>

在Jetty配置文件(jetty.xml)中 ,進行了以下配置:

  • Server類(或子類,如果已擴展)和全局選項。
  • ThreadPool(最小和最大線程)。
  • 連接器(端口,超時,緩沖區大小,協議)。
  • 處理程序結構(默認處理程序和/或contextHandlerCollections)。
  • 掃描并部署Web應用程序和上下文的Deployment Manager。
  • 提供身份驗證檢查的登錄服務。
  • 請求日志。

Apache Tomcat Maven插件

Apache Tomcat Maven插件配置

<!-- https://tomcat.apache.org/maven-plugin-trunk/index.html --> <plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!-- http port --><port>8080</port><!-- application path always starts with /--><path>/</path><!-- optional path to a context file --><contextFile>context.xml</contextFile><!-- optional system propoerties you want to add --><systemProperties><appserver.base>${project.build.directory}/appserver-base</appserver.base><appserver.home>${project.build.directory}/appserver-home</appserver.home><derby.system.home>${project.build.directory}/appserver-base/logs</derby.system.home><java.io.tmpdir>${project.build.directory}</java.io.tmpdir></systemProperties><!-- if you want to use test dependencies rather than only runtime --><useTestClasspath>false</useTestClasspath><!-- optional if you want to add some extra directories into the classloader --><additionalClasspathDirs><additionalClasspathDir></additionalClasspathDir></additionalClasspathDirs></configuration><!-- For any extra dependencies needed when running embedded Tomcat (not WAR dependencies) add them below --><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.connector.java.version}</version></dependency><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>${java.mail.version}</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jdbc</artifactId><version>${tomcat.jdbc.version}</version></dependency></dependencies> </plugin>

筆記

  • 指定Tomcat運行的端口
  • 在Tomcat查找配置時指定contextFile
  • 定義的外部依賴關系以連接到數據庫并發送電子郵件

Context.xml

<Context><Resourcename="jdbc/pcmDB"auth="Container"type="javax.sql.DataSource"factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"initialSize="5"maxActive="55"maxIdle="21"minIdle="13"timeBetweenEvictionRunsMillis="34000"minEvictableIdleTimeMillis="55000"validationQuery="SELECT 1"validationInterval="34"testOnBorrow="true"removeAbandoned="true"removeAbandonedTimeout="233"username="pcm"password="pcm_pw"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3307/pcmDB?allowMultiQueries=true"/> <Resource name="mail/Session" auth="Container"type="javax.mail.Session"username="test-dev@podcastpedia.org"password="test-dev" mail.smtp.host="mail.podcastpedia.org"mail.smtp.port="25"mail.smtp.user="test-dev@podcastpedia.org"mail.transport.protocol="smtp" mail.smtp.auth="true"/> </Context>

在context.xml中,定義了數據庫和電子郵件資源。

隨您去吧…由Spring Framework支持的Java Web應用程序運行輕型servlet容器,可以真正替代JAVA EE服務器及其所有成本。

注意:
這些是簡單的配置,但足以滿足當前的開發需求。 我的建議是閱讀相應的文檔以獲取更多高級選項和功能。

資源資源

  • Jetty Maven插件
  • Apache Tomcat Maven插件
  • 翻譯自: https://www.javacodegeeks.com/2015/06/run-java-web-apps-in-embedded-containers-with-maven-jetty-and-tomcat.html

    總結

    以上是生活随笔為你收集整理的使用Maven,Jetty和Tomcat在嵌入式容器中运行Java Web应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。

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