JPetStore Demo示例改进和讲解-轻量级J2EE技术框架应用
2012-07-05 13:58
441 查看
该工程最初版本来自于Mybatis所在的google code站点,属于轻量级J2EE技术框架应用范围,使用了Spring、Stripes和MyBatis开源框架。其中Stripes为MVC框架的一种,该框架的设计和使用理念是零配置。熟悉该工程后主要是做了两方面的改进,一个是开发调试方面,另一个是数据库连接方面。
本文主要介绍开发调试方面:采用Jetty Web Server进行开发调试,效率更高。
方式1:maven命令行方式
该方式比较简单,只需在工程的pom文件里添加一个插件,其具体内容如下:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<contextPath>/</contextPath>
<scanIntervalSeconds>3</scanIntervalSeconds>
<scanTargetPatterns>
<scanTargetPattern>
<directory>src/main/webapp/WEB-INF</directory>
<excludes>
<exclude>**/*.jsp</exclude>
</excludes>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</scanTargetPattern>
</scanTargetPatterns>
</configuration>
</plugin>
方式2:嵌入式方式
该方式略微复杂,首先在工程的pom文件里添加JSP support configured,其具体内容如下:
<!-- JSP support configured -->
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1-jetty</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1-glassfish</artifactId>
<version>2.1.v20091210</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-api-2.1-glassfish</artifactId>
<version>2.1.v20091210</version>
</dependency>
其次,在工程的src/main/java/org/mybatis/jpetstore/web目录下新建一个webwork目录,并在该目录下新增一个PetStoreJettyServer.java,其具体内容如下:
package org.mybatis.jpetstore.web.webwork;
//Jetty 6
import java.io.File;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.handler.HandlerCollection;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;
public class PetStoreJettyServer {
private Server server;
//private static final Log LOG = new Log();
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) {
new PetStoreJettyServer();
}
// Jetty 6
public PetStoreJettyServer() {
//LOG.info("Starting web...");
try {
server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(8080);
server.setConnectors(new Connector[]{connector});
String[] tryPaths = new String[] {
"mybatis-jpetstore/src/main/webapp",
"../mybatis-jpetstore/src/main/webapp"
};
String webapp = System.getProperty("webapp");
if (webapp == null) {
for (String tryPath : tryPaths) {
if (new File(tryPath).exists()) {
webapp = tryPath;
}
}
}
if (webapp == null) {
//LOG.severe("Could not find suitable web app sources to deploy, failing");
return;
}
WebAppContext webappcontext = new WebAppContext();
webappcontext.setContextPath("/");
webappcontext.setWar(webapp);
HandlerCollection handlers= new HandlerCollection();
handlers.setHandlers(new Handler[]{webappcontext, new DefaultHandler()});
server.setHandler(handlers);
server.start();
try {
server.join();
} catch (InterruptedException e) {
//LOG.severe(e);
}
} catch (Exception e) {
//LOG.severe(e);
}
}
}
本文出自 “思想 方法 技能 实践” 博客,谢绝转载!
本文主要介绍开发调试方面:采用Jetty Web Server进行开发调试,效率更高。
方式1:maven命令行方式
该方式比较简单,只需在工程的pom文件里添加一个插件,其具体内容如下:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<contextPath>/</contextPath>
<scanIntervalSeconds>3</scanIntervalSeconds>
<scanTargetPatterns>
<scanTargetPattern>
<directory>src/main/webapp/WEB-INF</directory>
<excludes>
<exclude>**/*.jsp</exclude>
</excludes>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</scanTargetPattern>
</scanTargetPatterns>
</configuration>
</plugin>
方式2:嵌入式方式
该方式略微复杂,首先在工程的pom文件里添加JSP support configured,其具体内容如下:
<!-- JSP support configured -->
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1-jetty</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1-glassfish</artifactId>
<version>2.1.v20091210</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-api-2.1-glassfish</artifactId>
<version>2.1.v20091210</version>
</dependency>
其次,在工程的src/main/java/org/mybatis/jpetstore/web目录下新建一个webwork目录,并在该目录下新增一个PetStoreJettyServer.java,其具体内容如下:
package org.mybatis.jpetstore.web.webwork;
//Jetty 6
import java.io.File;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.handler.HandlerCollection;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;
public class PetStoreJettyServer {
private Server server;
//private static final Log LOG = new Log();
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) {
new PetStoreJettyServer();
}
// Jetty 6
public PetStoreJettyServer() {
//LOG.info("Starting web...");
try {
server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(8080);
server.setConnectors(new Connector[]{connector});
String[] tryPaths = new String[] {
"mybatis-jpetstore/src/main/webapp",
"../mybatis-jpetstore/src/main/webapp"
};
String webapp = System.getProperty("webapp");
if (webapp == null) {
for (String tryPath : tryPaths) {
if (new File(tryPath).exists()) {
webapp = tryPath;
}
}
}
if (webapp == null) {
//LOG.severe("Could not find suitable web app sources to deploy, failing");
return;
}
WebAppContext webappcontext = new WebAppContext();
webappcontext.setContextPath("/");
webappcontext.setWar(webapp);
HandlerCollection handlers= new HandlerCollection();
handlers.setHandlers(new Handler[]{webappcontext, new DefaultHandler()});
server.setHandler(handlers);
server.start();
try {
server.join();
} catch (InterruptedException e) {
//LOG.severe(e);
}
} catch (Exception e) {
//LOG.severe(e);
}
}
}
本文出自 “思想 方法 技能 实践” 博客,谢绝转载!
相关文章推荐
- JPetStore Demo示例改进和讲解-轻量级J2EE技术框架应用(续)
- Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例
- Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例
- 【分享】Vue 资源典藏(UI组件、开发框架、服务端、辅助工具、应用实例、Demo示例)
- Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例
- Vue组件大全包括(UI组件,开发框架,服务端,辅助工具,应用实例,Demo示例)
- 【双旦献礼】Portal-Basic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
- thinkPHP3.2.2框架行为扩展及demo示例
- 基于插件技术的GIS应用框架(C# + ArcEngine9.3)(一)
- J2EE 领域的一些技术框架结构图
- 基于插件技术的GIS应用框架(C# + ArcEngine9.3)(十)
- J2EE领域的一些技术框架结构图
- 全文检索框架Lucene——Demo应用
- Portal-Basic Java Web 应用开发框架(v2.5.4 - 源码、示例及文档可在 Google Code 下载)
- (插件设计与简单应用)php中钩子(hook)的应用示例demo
- J2EE应用讲解(3)——JSP基础知识
- Spring - Java/J2EE Application Framework 应用框架 第 9 章 DAO支持
- J2EE应用讲解(4)——EJB基础知识
- J2ee分布式框架--技术介绍文档
- promise应用示例讲解