开发java web应用时,能在“真实”的环境中有快速的反馈是非常实用的。本文将探寻如何使用maven使java
web应用运行在内嵌的Jetty或Tomcat容器中。我将展示如何配置他们来开发Podcastpedia.org网站的工程podcastpedia。
环境准备
你需要有Maven,至少安装了Java 7。正常情况你应该可以自行部署和启动podcastpedia工程并看到效果
Jetty Maven Plugin
插件配置
org.eclipse.jetty
jetty-maven-plugin
${jetty.version}
${project.basedir}/src/main/resources/config/jetty9.xml
STOP
9999
5
${project.basedir}/src/main
${project.basedir}/src/test
${project.basedir}/src/test/resources/jetty-context.xml
/
mysql
mysql-connector-java
${mysql.connector.java.version}
javax.mail
${java.mail.version}
org.apache.tomcat
tomcat-jdbc
${tomcat.jdbc.version}
注意:jettyConfig 指定Jetty的配置文件,下一部分将有该配置文件的具体内容
scanTargets 指定了Jetty监控文件变化的文件夹
指定连接数据库和发邮件的 依赖包
Jetty.xml配置文件<?xml version="1.0" encoding="UTF-8"?>
jdbc/pcmDB
jdbc:mysql://localhost:3307/pcmDB?allowMultiQueries=true
pcm
pcm_pw
mail/Session
test-dev@podcastpedia.org
test-dev
mail.podcastpedia.org
true
smtp
25
true
在 Jetty配置文件 中,你需要配置一下内容:Server类(或者子类)以及全局的可选项
一个线程池(最小、最大线程数)
Connectors连接器(端口号、超时时间、缓冲区大小、协议)
处理器结构(handler structure)(默认的处理器或者一个contextHandlerCollections)
扫描部署的webapps和容器上下文的部署管理器
提供认证的登录服务
请求日志
Apache Tomcat Maven插件
apache tomcat maven插件的配置
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
8080
/
context.xml
${project.build.directory}/appserver-base
${project.build.directory}/appserver-home
${project.build.directory}/appserver-base/logs
${project.build.directory}
false
mysql
mysql-connector-java
${mysql.connector.java.version}
javax.mail
${java.mail.version}
org.apache.tomcat
tomcat-jdbc
${tomcat.jdbc.version}
注意:指定tomcat的 端口号
指定 contextFile ,用来告诉tomcat配置文件在哪里
指定连接数据库和发邮件的 依赖包
context.xml
name="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"
/>
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.xml中,定义了数据库和邮件资源
就这样,使用了spring框架的Java web应用可以运行轻量级的servlet容器,显然这种方式可以代替JavaEE服务器及其带来的所有成本。
参考
翻译:http://www.javacodegeeks.com/2015/06/run-java-web-apps-in-embedded-containers-with-maven-jetty-and-tomcat.html
Post Footer automatically generated by wp-posturl plugin for wordpress.