`
wuzijingaip
  • 浏览: 329761 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

tomcat embedded + sqlite

阅读更多
tomcat5 embed 直接解压就可以用了,5.0.x 用jdk1.4,5.5.x用jkd1.5,不过启动要靠java 程序(它实际上是一些 jar 包),也就是你可以把它导入web项目里,这个web项目就包含了服务器,启动时设置项目的路径就可以了


sqlite 文件很小,就一个(几百K),也需要手动或程序启动


启动tomcat embed 的类如下:
  
  
import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.startup.Embedded;
  
public class Run {  
  
    private static Embedded tomcat = null;  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        initEmbedded();  
        initShutdownHook();  
        startTomcat();  
    }  
  
    private static void startTomcat(){  
        try {  
            tomcat.start();  
        } catch (LifecycleException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  
    private static void initShutdownHook(){  
        Runtime.getRuntime().addShutdownHook(new Thread(){  
            public void run(){  
                try {  
                    tomcat.stop();  
                } catch (LifecycleException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
        });  
    }  
    private static void initEmbedded() {  
        tomcat = new Embedded();  
        tomcat.setCatalinaHome("D:\\apache-tomcat-5.5.28-embed");  //tomcat embed 路径
          
        Engine engine = tomcat.createEngine();  
        engine.setName("MyEngine");  
  
        Host host = tomcat.createHost("localhost", "D:\\apache-tomcat-5.5.28-embed\\webapps");  // web站点根目录
        Context myContext = tomcat.createContext("/test", "E:\\newworkspace\\Fbote");  //工程目录(要编译好的,我是用eclipse编译好的)
          
        host.addChild(myContext);  
        engine.addChild(host);  
        engine.setDefaultHost("localhost");  
        tomcat.addEngine(engine);  
        Connector connector = tomcat.createConnector("localhost", 8080, false);  //端口
        tomcat.addConnector(connector);  
    }  
  
}  




sqlite 使用很简单,(测试时在windows)下测试:

解压 -> cmd -> cd 所在目录:
sqlite3.exe Mydb.db
create table user(id integer primary key,name varchar(222));
insert into user(1,'elmer');
.schema

(此时就建好了Mydb 数据库和 user 表,并添加了一条数据)
select * from user 

就会出现
1|elmer



jsp 连接时用:
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" language="java" import="java.sql.*"%>
<%
request.setCharacterEncoding("utf-8");
String body = request.getParameter("body");

try {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:/d:/test.db");
Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);

String sql = "INSERT INTO ttable(id, name) VALUES('1', '" + body + "')";
stmt.executeUpdate(sql);

stmt.close();
conn.close();
} catch(Exception e) {
out.println(e.getMessage());
return;
}
%>


如果是用连接池可以在struts-config.xml中陪置如下:
<data-sources>
          <data-source key="org.apache.struts.action.DATA_SOURCE"
           type="org.apache.commons.dbcp.BasicDataSource">
           <set-property property="autoCommit" value="true" />
           <set-property property="description"  value="sqlite Data Source" />
           <set-property property="driverClassName" value="org.sqlite.JDBC" />
           <set-property property="maxCount" value="100" />
           <set-property property="minCount" value="20" />
           <set-property property="maxWait" value="1000" />
           <set-property property="url"
            value="jdbc:sqlite:/D:/sqlite/fbote.db" />
          </data-source>
        </data-sources>





上面为测试通过的,下面是其他一些关于 tomcat embed 的例了,没测试过

另请参考:http://www.iteye.com/topic/8820

private Embedded createTomcat(String path);  
{  
  Embedded tomcat = new Embedded();;  
  
  tomcat.setCatalinaHome(path);;  
  
  Engine engine = tomcat.createEngine();;  
  engine.setName("EspServer");;  
  
  Host host = tomcat.createHost("localhost", tomcat.getCatalinaHome(); + "/webapps");;  
  
  engine.addChild(host);;  
  engine.setDefaultHost(host.getName(););;  
  
  Context ctxtRoot = tomcat.createContext("", host.getAppBase(); + "/ROOT");;  
  ctxtRoot.setPrivileged(true);;  
  
  host.addChild(ctxtRoot);;  
  
  String espPath = ConfigManager.getProperty("ESP_ROOTDIR");;  
  
  if(espPath == null || !new File(espPath);.exists(););  
  {  
    espPath = host.getAppBase(); + "/esp";  
  
    if(!new File(espPath);.exists(););  
    {  
      System.err.println("You should set ESP_ROOTDIR in esp.config.");;  
  
      return null;  
    }  
  }  
  
  Context ctxtEsp = tomcat.createContext("/esp", espPath);;  
  
  host.addChild(ctxtEsp);;  
  
  tomcat.addEngine(engine);;  
  tomcat.setDebug(Logger.WARNING);;  
  
  try  
  {  
    tomcat.addConnector(tomcat.createConnector(  
        InetAddress.getByName("127.0.0.1");, 8080, false););;  
  }  
  catch (UnknownHostException e);  
  {  
    System.err.println("Bind tomcat server to 127.0.0.1:8080 failed.");;  
  
    e.printStackTrace();;  
  
    tomcat = null;  
  }  
  
  return tomcat;  
}  



import java.net.InetAddress;  
  
import org.apache.catalina.Context;  
import org.apache.catalina.Engine;  
import org.apache.catalina.Host;  
import org.apache.catalina.connector.Connector;  
import org.apache.catalina.deploy.ContextResource;  
import org.apache.catalina.deploy.NamingResources;  
import org.apache.catalina.startup.Embedded;  
  
public class EmbededTomcat {  
  
    public static void main(String[] args) throws Exception {  
        Embedded embedded = new Embedded();  
        Engine engine = embedded.createEngine();  
        engine.setDefaultHost("localhost");  
        Host host = embedded.createHost("localhost", "");  
        engine.addChild(host);  
        // Create the ROOT context  
        Context context = embedded  
                .createContext("/test", "D:\\workspace\\mypro\\webapp");  
        /*数据源配置 
        NamingResources name = new NamingResources(); 
        ContextResource resource = new ContextResource(); 
        resource.setName("jdbc/jfw"); 
        resource.setAuth("Container"); 
        resource.setType("javax.sql.DataSource"); 
        resource.setProperty("factory", 
                "org.apache.commons.dbcp.BasicDataSourceFactory"); 
        resource.setProperty("maxActive", "20"); 
        resource.setProperty("maxIdle", "10"); 
        resource.setProperty("maxWait", "100000"); 
        resource.setProperty("username", "epms"); 
        resource.setProperty("password", "nci"); 
        resource.setProperty("driverClassName", 
                "oracle.jdbc.driver.OracleDriver"); 
        resource.setProperty("url", 
                "jdbc:oracle:thin:@10.147.218.162:1521:pmis2"); 
        // resource.setProperty("url", 
        // "jdbc:oracle:thin:@192.168.131.100:1521:epms"); 
 
        name.addResource(resource); 
        // System.out.println(resource.getName()); 
        // System.out.println(resource.getAuth()); 
        // System.out.println(resource.getType()); 
        // System.out.println(resource.getProperty("url")); 
        context.setNamingResources(name); 
         */  
        host.addChild(context);  
        embedded.addEngine(engine);  
        Connector connector = embedded.createConnector((InetAddress) null,  
                8080, false);  
        embedded.addConnector(connector);  
        embedded.start();  
    }  
  
}   

package com.javayou.tomcat.embed;
import java.io.File;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.Logger;
import org.apache.catalina.startup.Embedded;
/**
 * @author Liang.xf 2004-12-19
 * 嵌入式Tomcat使用样例
 * www.javayou.com
 */
public class TomcatService {
 public static void main(String[] args) {
  //设置Tomcat的工作目录,并启动Tomcat Server
  String path = "e:\\tomcat-embed";
  Embedded tc = createTomcat(path);
  try {
   tc.start();
   System.out.println("---------- Tomcat Server start over. ------------");
  } catch (Exception e) {
   e.printStackTrace();
  }  
 }
 
 private static Embedded createTomcat(String path) {
     //创建嵌入式Tomcat Server的实例
  Embedded tomcat = new Embedded();
        //设置Tomcat的工作目录
  tomcat.setCatalinaHome(path);
        //产生Tomcat引擎
  Engine engine = tomcat.createEngine();
  engine.setName("JavayouServer");
  //创建Host,设置Host的工作目录
  Host host = tomcat.createHost("localhost", tomcat.getCatalinaHome()
    + "/webapps");
        //把Host加入Engine
  engine.addChild(host);
  engine.setDefaultHost(host.getName());
  
  String javayouPath = host.getAppBase() + "/javayou";
  if (!new File(javayouPath).exists()) {
   System.err.println("请检查Javayou应用的目录以及相关资源是否存在.");
   return null;
  }
  //创建Javayou的Context,并加入Host中
  Context ctxtJavayou = tomcat.createContext("/javayou", javayouPath);
  host.addChild(ctxtJavayou);
  
  tomcat.addEngine(engine);
  tomcat.setDebug(Logger.WARNING);
  try {
      //Tomcat加入Connector,监听本地(127.0.0.1)的访问
   tomcat.addConnector(tomcat.createConnector(InetAddress
     .getByName("127.0.0.1"), 8080, false));
  } catch (UnknownHostException e) {
   System.err.println("绑定Tomcat Server到127.0.0.1:8080失败,
请检查端口是否被占用.");
   e.printStackTrace();
   tomcat = null;
  }
  return tomcat;
 }
}


分享到:
评论

相关推荐

    wince+sqlite+sqlite管理工具

    2. 配置编译环境:安装适用于WinCE的交叉编译工具链,例如Microsoft Platform Builder或eMbedded Visual C++。配置工具链以指向WinCE的目标平台,并设置必要的编译选项。 3. 修改配置文件:根据你的需求,可能需要...

    SOC+Embedded+System+development

    SOC+Embedded+System+development SOC+Embedded+System+development SOC+Embedded+System+development SOC+Embedded+System+development SOC+Embedded+System+development

    An+Embedded+Software+Primer(HD)

    An+Embedded+Software+Primer扫描高清版

    Unity 内嵌网页Embedded+Browser+1.0.2和UniWebView3-new

    本话题将详细介绍两个用于在Unity中内嵌网页的插件——"Embedded+Browser+1.0.2"和"UniWebView3-new"。 首先,"Embedded+Browser+1.0.2"是一个专为Unity设计的内置浏览器组件。它允许开发者在Unity应用中直接加载和...

    QT+Embedded+4.5.0+移植到友善之臂mini2440开发板.pdf

    ### QT Embedded 4.5.0 移植到友善之臂 Mini2440 开发板详解 #### 一、前言与背景介绍 本文旨在详细介绍如何将 QT Embedded 4.0.5 版本成功移植到友善之臂 Mini2440 开发板上的全过程。Mini2440 是一款基于 ARM...

    Windows+Embedded+CE+Operating+System+Components.pdf

    根据给定文件的信息,我们可以深入探讨Windows Embedded CE操作系统的核心组件及其不同授权版本之间的差异,以及与之相关的开发工具和应用支持。以下是对标题、描述、标签以及部分内容中提及的关键知识点的详细解读...

    How+to+Use+Ceedling+for+Embedded+Test-Driven+Development.pdf

    This guide contains step-by-step examples to get you started test driving in C, especially for embedded software applications. We'll look at how to use the unit test framework called Ceedling to help...

    tomcat-embedded:Tomcat原始码分析

    【标题】"Tomcat-Embedded: Tomcat原始码分析" 在深入探讨Tomcat-Embedded之前,我们先理解一下什么是Tomcat。Tomcat是一款开源的、轻量级的Java Servlet容器,由Apache软件基金会开发,主要用于运行Java Web应用...

    IAR Embedded Workbench+kegen+MSP430_V5.5

    IAR Embedded Workbench For MSC-51 v8.10 (終版,下一個版本授權方式更改,暫時無法破解) IAR Embedded Workbench For Atmel AVR v6.12 IAR Embedded Workbench For Atmel AVR32 v4.10 IAR Embedded Workbench ...

    airavata-embedded-tomcat-0.7.jar

    标签:airavata-embedded-tomcat-0.7.jar,airavata,embedded,tomcat,0.7,jar包下载,依赖包

    java嵌入式tomcat[借鉴].pdf

    Java 嵌入式 Tomcat 配置详细说明 Tomcat 是一个流行的 Java Web 服务器,可以作为独立的服务器运行,也可以嵌入到 Java 应用程序中。在本文中,我们将详细介绍如何在 Java 项目中嵌入 Tomcat 服务器,并配置相关...

    瑞萨单片机开发环境系统用户手册

    #### 一、High-performance Embedded Workshop 概览 **High-performance Embedded Workshop**(高性能嵌入式工作站)是一款专门为瑞萨单片机开发设计的集成开发环境(IDE)。该工具旨在为用户提供一个高效便捷的方式...

    Unity+内嵌浏览器+Embedded Browser+PC平台内置浏览器

    在2019.4版本以上使用,可进行网页浏览,支持正常的广告弹窗触发,不支持html5视频播放

    apachecxf_embedded_tomcat:基于Maven原型并添加嵌入式Tomcat的最小示例

    apachecxf_embedded_tomcat 基于Maven原型并添加嵌入式Tomcat的最小示例。 最初的来源是Maven原型: 另外,嵌入式Tomcat 7代码来自: 这里真的没有什么新东西,主要是混音,然后是一个琐碎的服务,它确实在等待...

    SQLite在windows与wince下使用的简单例子(源码、sqlite.DLL)

    SQLite是一款轻量级的数据库引擎,它被广泛用于嵌入式设备和移动应用,如Windows CE(Windows Embedded Compact,简称Wince)系统。这个压缩包包含了一个使用SQLite在Windows和Wince平台上运行的简单示例,特别适合...

    基于Qt4的SQLite数据库应用编程

    参考文献部分列出了相关的研究资料,如《SQLite的特性》、《SQLite在嵌入式系统上的实现研究》、《基于Qt/Embedded的SQLite数据库研究及应用》等,这些文献对于深入研究SQLite的内部实现以及在Qt框架下的应用提供了...

    Embedded-Tomcat:WAR 中的 Tomcat 示例

    "Embedded-Tomcat: WAR中的Tomcat示例"这个主题聚焦于如何在Java应用程序内部集成并运行Tomcat,而不是像传统方式那样独立部署。这种方式称为“嵌入式Tomcat”,它允许开发者将Tomcat的功能直接嵌入到应用中,简化了...

    VS2017编译Chromium Embedded Framework(CEF)

    在本文中,我们将详细介绍如何使用Visual Studio 2017(VS2017)编译Chromium Embedded Framework(CEF)。CEF是一个开源项目,它允许开发者将Chromium浏览器引擎嵌入到他们的应用程序中,以便利用现代Web技术进行...

    tomcat启动报错

    tomcat启动报错,启动超时,找不到类文件四渡赤水打成不是的

Global site tag (gtag.js) - Google Analytics