代码改变世界

openfire 介绍安装使用

2014-09-11 11:59  youxin  阅读(3907)  评论(0编辑  收藏  举报

Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。您可以使用它轻易的构建高效率的即时通信服务器.由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务.

什么是XMPP?
Extensible Messaging and Presence Protocol,简单的来讲,它就是一个发送接收处理消息的协议,但是这个协议发送的消息,既不是二进制的东东也不是字符串,而是XML。正是因为使用 了XML作为消息传递的中介,Extensible 才谈的上,不是么?嘿嘿。再详尽的东西,我也就不多介绍了,大家可以去百度百科里查看下。

什么是IM ?

Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。当前IM 几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件,不但让 你可以边游戏边聊天,也可以开发出适合游戏本身的IM 应用,比如说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。说了这么多,就是一个意思,其商业价值远远比你想的高!

Spark Smack 和 Openfire

开源界总是有许多有 趣的东东,这三个合起来就是一个完整的XMPP IM 实现。包括服务器端——Openfire,客户端——Spark,XMPP 传输协议的实现——Smack(记住,XMPP是一个协议,协议是需要实现的,Smack起到的就是这样的一个作用)。三者都是基于Java 语言的实现,因此对于熟悉Java 的开发者来说不是很难。(smack滋味)

Spark 提供了客户端一个基本的实现,并提出了一个很好的插件架构,这对于开发者来说不能不说是一个福音。我强烈建议基于插件方式来实现你新增加的功能,而不是去 改它的源代码,这样有利于你项目架构,把原始项目的影响降到最低,文章以后的部分也是基于这种插件体系进行开发的

Openfire 是基于XMPP 协议的IM 的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务 器端是必须要实现的。Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供插件的扩展,像Spark 一样,我同样强烈建议使用插件扩展的方式来增加新的功能,而不是修改人家的源代码。

Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的功能

下图展示了三者之间的关系:

 

更多:http://blog.sina.com.cn/s/blog_629847620100ksfy.html

 

JWChat是一个功能强大,基于Web的Jabber客户端。采用AJAX技术开发, 这个客户端只用到了JavaScript与HTML。它具备基本的jabber即时消息功能,用户管理,
基于MUC协议的群聊天功能
 

openfire下载地址:http://www.igniterealtime.org/downloads/index.jsp#openfire

有mac,window,linux版本。

我使用的是zip解压版的安装文件。

其中openfire是服务器,下面还有一个spark,这个是一个XMPP协议通信聊天的CS的IM软件,它可以通过openfire进行聊天对话。

 

2、 下载完成后,如果你下载的是exe文件,执行你的安装文件,进行安装。这里我是zip的文件。解压后,复制openfire目录到C:\Program Files\目录下;一定要在C:\Program Files\目录下的;这样openfire就安装完成了。

 

3、 下面我们启动openfire服务器,并配置它。在C:\Program Files\openfire\bin目录下有一个电灯泡的openfire.exe文件,双击执行,启动完成后可以看到

4、 点击Launch Admin按钮进入http://127.0.0.1:9090/setup/index.jsp页面,配置openfire服务器

 

5、 选择语言 中文简体

点击continue进入

 

6、 配置服务器域名

 

如果你是本地访问,那么你可以不修改或是使用localhost、127.0.0.1的方式

如果你用于外网或局域网访问,那么你的地址配置成外网或局域网地址

 (

你的分发版里的文件应该像下面这样 (为了简短一点,一些子目录被忽略了):

openfire/
 |- readme.html
 |- license.html
 |- conf/
 |- bin/
 |- jre/
 |- lib/
 |- plugins/
     |- admin/
 |- resources/
     |-database/
     |-security/
 |- documentation/
  • conf 目录Openfire用来存放配置文件.
  • bin 目录包含了服务器的可执行文件. 根据你安装的不同分发版, 可用的执行文件也不同.
  • jre 目录包含了一个 Java 5 虚拟机,打包在Windows和RPM版本Openfire里面的.
  • lib 目录包含了运行Openfire所需要的库.
  • plugins 目录包含了服务器插件. 缺省地, Openfire带了一个基于web的管理控制台插件.
  • resources/database 目录包含 SQL 架构文件,用来新建Openfire数据库, 以及已有安装的更新脚本.
  • resources/security 目录是Openfire维护keystores的地方,用来支持SSL连接安全性.
  • documentation 目录包含了服务器文档.

 

Windows服务

如果你正在Windows下运行Openfire, 你或许想在初始化安装之后把Openfire作为一个标准的Windows来运行. 如果你使用Windows安装包, 一个 openfire-service.exe 文件将会出现在安装目录下的 bin 目录. 你可以使用这个可执行文件来安装和控制Openfire服务.

从控制台窗口, 你可以运行以下命令:

  • openfire-service /install -- 安装服务.
  • openfire-service /uninstall -- 卸载服务.
  • openfire-service /start -- 启动服务.
  • openfire-service /stop -- 停止服务.

更多:http://wiki.jabbercn.org/Openfire:%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97

 

7、 选择数据库

选择openfire自带的,当然你也可以选择你的数据库类型。如Oracle、SQLServer、MySQL等。如果openfire没有带jdbc的连接驱动,你需要添加连接数据库的jdbc驱动;驱动放在C:\Program Files\openfire\lib目录下。

 (最开始使用的是嵌入的数据库:

数据库和版本: HSQL Database Engine 1.8.0
JDBC 驱动程序: HSQL Database Engine Driver

后台发现不方便,改成mysql。

在openfire的conf文件夹下面有一个openfire.xml的配置文件,里面就有数据库的配置。
默认为:
 <connectionProvider> 
    <className>org.jivesoftware.database.EmbeddedConnectionProvider</className> 
  </connectionProvider>  
 修改配置还是不会,我还是重新安装了openfire然后设置



解决中文乱码:
jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8

http://blog.csdn.net/vikione/article/details/5996987

安装完后数据库配置如下:
 <connectionProvider>
    <className>org.jivesoftware.database.DefaultConnectionProvider</className>
  </connectionProvider> 
  <database>
    <defaultProvider>
      <driver>com.mysql.jdbc.Driver</driver> 
      <serverURL>jdbc:mysql://127.0.0.1:3306/openfire?rewriteBatchedStatements=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=utf8</serverURL> 
      <username encrypted="true">jMz15UTd+30DVc5uZfXg5g==</username> 
      <password encrypted="true">XGGsQQtPFr8w2qACwmpMlA==</password> 
      <testSQL>select 1</testSQL> 
      <testBeforeUse>false</testBeforeUse> 
      <testAfterUse>false</testAfterUse> 
      <minConnections>5</minConnections> 
      <maxConnections>25</maxConnections> 
      <connectionTimeout>1.0</connectionTimeout>
    </defaultProvider>
  </database> 
  <setup>true</setup>

 


然后你还要手动执行resources/database里面你需要的数据库的脚本,然后在把以前数据库里面的数据导入到你的新数据库。
openfire_mysql.sql内容如下:
 进入mysql的控制台后,使用source命令执行
Mysql>source 【sql脚本文件的路径全名】 或 Mysql>\. 【sql脚本文件的路径全名】,示例:
source d:\test\ss.sql 或者 \. d:\test\ss.sql

# $Revision: 1650 $
# $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $

CREATE TABLE ofUser (
  username              VARCHAR(64)     NOT NULL,
  plainPassword         VARCHAR(32),
  encryptedPassword     VARCHAR(255),
  name                  VARCHAR(100),
  email                 VARCHAR(100),
  creationDate          CHAR(15)        NOT NULL,
  modificationDate      CHAR(15)        NOT NULL,
  PRIMARY KEY (username),
  INDEX ofUser_cDate_idx (creationDate)
);

CREATE TABLE ofUserProp (
  username              VARCHAR(64)     NOT NULL,
  name                  VARCHAR(100)    NOT NULL,
  propValue             TEXT            NOT NULL,
  PRIMARY KEY (username, name)
);

CREATE TABLE ofUserFlag (
  username              VARCHAR(64)     NOT NULL,
  name                  VARCHAR(100)    NOT NULL,
  startTime             CHAR(15),
  endTime               CHAR(15),
  PRIMARY KEY (username, name),
  INDEX ofUserFlag_sTime_idx (startTime),
  INDEX ofUserFlag_eTime_idx (endTime)
);

CREATE TABLE ofPrivate (
  username              VARCHAR(64)     NOT NULL,
  name                  VARCHAR(100)    NOT NULL,
  namespace             VARCHAR(200)    NOT NULL,
  privateData           TEXT            NOT NULL,
  PRIMARY KEY (username, name, namespace(100))
);

CREATE TABLE ofOffline (
  username              VARCHAR(64)     NOT NULL,
  messageID             BIGINT          NOT NULL,
  creationDate          CHAR(15)        NOT NULL,
  messageSize           INTEGER         NOT NULL,
  stanza                TEXT            NOT NULL,
  PRIMARY KEY (username, messageID)
);

CREATE TABLE ofPresence (
  username              VARCHAR(64)     NOT NULL,
  offlinePresence       TEXT,
  offlineDate           CHAR(15)     NOT NULL,
  PRIMARY KEY (username)
);

CREATE TABLE ofRoster (
  rosterID              BIGINT          NOT NULL,
  username              VARCHAR(64)     NOT NULL,
  jid                   VARCHAR(1024)   NOT NULL,
  sub                   TINYINT         NOT NULL,
  ask                   TINYINT         NOT NULL,
  recv                  TINYINT         NOT NULL,
  nick                  VARCHAR(255),
  PRIMARY KEY (rosterID),
  INDEX ofRoster_unameid_idx (username),
  INDEX ofRoster_jid_idx (jid(255))
);

CREATE TABLE ofRosterGroups (
  rosterID              BIGINT          NOT NULL,
  rank                  TINYINT         NOT NULL,
  groupName             VARCHAR(255)    NOT NULL,
  PRIMARY KEY (rosterID, rank),
  INDEX ofRosterGroup_rosterid_idx (rosterID)
);

CREATE TABLE ofVCard (
  username              VARCHAR(64)     NOT NULL,
  vcard                 MEDIUMTEXT      NOT NULL,
  PRIMARY KEY (username)
);

CREATE TABLE ofGroup (
  groupName             VARCHAR(50)     NOT NULL,
  description           VARCHAR(255),
  PRIMARY KEY (groupName)
);

CREATE TABLE ofGroupProp (
  groupName             VARCHAR(50)     NOT NULL,
  name                  VARCHAR(100)    NOT NULL,
  propValue             TEXT            NOT NULL,
  PRIMARY KEY (groupName, name)
);

CREATE TABLE ofGroupUser (
  groupName             VARCHAR(50)     NOT NULL,
  username              VARCHAR(100)    NOT NULL,
  administrator         TINYINT         NOT NULL,
  PRIMARY KEY (groupName, username, administrator)
);

CREATE TABLE ofID (
  idType                INTEGER         NOT NULL,
  id                    BIGINT          NOT NULL,
  PRIMARY KEY (idType)
);

CREATE TABLE ofProperty (
  name        VARCHAR(100)              NOT NULL,
  propValue   TEXT                      NOT NULL,
  PRIMARY KEY (name)
);


CREATE TABLE ofVersion (
  name     VARCHAR(50)  NOT NULL,
  version  INTEGER  NOT NULL,
  PRIMARY KEY (name)
);

CREATE TABLE ofExtComponentConf (
  subdomain             VARCHAR(255)    NOT NULL,
  wildcard              TINYINT         NOT NULL,
  secret                VARCHAR(255),
  permission            VARCHAR(10)     NOT NULL,
  PRIMARY KEY (subdomain)
);

CREATE TABLE ofRemoteServerConf (
  xmppDomain            VARCHAR(255)    NOT NULL,
  remotePort            INTEGER,
  permission            VARCHAR(10)     NOT NULL,
  PRIMARY KEY (xmppDomain)
);

CREATE TABLE ofPrivacyList (
  username              VARCHAR(64)     NOT NULL,
  name                  VARCHAR(100)    NOT NULL,
  isDefault             TINYINT         NOT NULL,
  list                  TEXT            NOT NULL,
  PRIMARY KEY (username, name),
  INDEX ofPrivacyList_default_idx (username, isDefault)
);

CREATE TABLE ofSASLAuthorized (
  username            VARCHAR(64)   NOT NULL,
  principal           TEXT          NOT NULL,
  PRIMARY KEY (username, principal(200))
);

CREATE TABLE ofSecurityAuditLog (
  msgID                 BIGINT          NOT NULL,
  username              VARCHAR(64)     NOT NULL,
  entryStamp            BIGINT          NOT NULL,
  summary               VARCHAR(255)    NOT NULL,
  node                  VARCHAR(255)    NOT NULL,
  details               TEXT,
  PRIMARY KEY (msgID),
  INDEX ofSecurityAuditLog_tstamp_idx (entryStamp),
  INDEX ofSecurityAuditLog_uname_idx (username)
);

# MUC Tables

CREATE TABLE ofMucService (
  serviceID           BIGINT        NOT NULL,
  subdomain           VARCHAR(255)  NOT NULL,
  description         VARCHAR(255),
  isHidden            TINYINT       NOT NULL,
  PRIMARY KEY (subdomain),
  INDEX ofMucService_serviceid_idx (serviceID)
);

CREATE TABLE ofMucServiceProp (
  serviceID           BIGINT        NOT NULL,
  name                VARCHAR(100)  NOT NULL,
  propValue           TEXT          NOT NULL,
  PRIMARY KEY (serviceID, name)
);

CREATE TABLE ofMucRoom (
  serviceID           BIGINT        NOT NULL,
  roomID              BIGINT        NOT NULL,
  creationDate        CHAR(15)      NOT NULL,
  modificationDate    CHAR(15)      NOT NULL,
  name                VARCHAR(50)   NOT NULL,
  naturalName         VARCHAR(255)  NOT NULL,
  description         VARCHAR(255),
  lockedDate          CHAR(15)      NOT NULL,
  emptyDate           CHAR(15)      NULL,
  canChangeSubject    TINYINT       NOT NULL,
  maxUsers            INTEGER       NOT NULL,
  publicRoom          TINYINT       NOT NULL,
  moderated           TINYINT       NOT NULL,
  membersOnly         TINYINT       NOT NULL,
  canInvite           TINYINT       NOT NULL,
  roomPassword        VARCHAR(50)   NULL,
  canDiscoverJID      TINYINT       NOT NULL,
  logEnabled          TINYINT       NOT NULL,
  subject             VARCHAR(100)  NULL,
  rolesToBroadcast    TINYINT       NOT NULL,
  useReservedNick     TINYINT       NOT NULL,
  canChangeNick       TINYINT       NOT NULL,
  canRegister         TINYINT       NOT NULL,
  PRIMARY KEY (serviceID,name),
  INDEX ofMucRoom_roomid_idx (roomID),
  INDEX ofMucRoom_serviceid_idx (serviceID)
);

CREATE TABLE ofMucRoomProp (
  roomID                BIGINT          NOT NULL,
  name                  VARCHAR(100)    NOT NULL,
  propValue             TEXT            NOT NULL,
  PRIMARY KEY (roomID, name)
);

CREATE TABLE ofMucAffiliation (
  roomID              BIGINT        NOT NULL,
  jid                 TEXT          NOT NULL,
  affiliation         TINYINT       NOT NULL,
  PRIMARY KEY (roomID,jid(70))
);

CREATE TABLE ofMucMember (
  roomID              BIGINT        NOT NULL,
  jid                 TEXT          NOT NULL,
  nickname            VARCHAR(255)  NULL,
  firstName           VARCHAR(100)  NULL,
  lastName            VARCHAR(100)  NULL,
  url                 VARCHAR(100)  NULL,
  email               VARCHAR(100)  NULL,
  faqentry            VARCHAR(100)  NULL,
  PRIMARY KEY (roomID,jid(70))
);

CREATE TABLE ofMucConversationLog (
  roomID              BIGINT        NOT NULL,
  sender              TEXT          NOT NULL,
  nickname            VARCHAR(255)  NULL,
  logTime             CHAR(15)      NOT NULL,
  subject             VARCHAR(255)  NULL,
  body                TEXT          NULL,
  INDEX ofMucConversationLog_time_idx (logTime)
);

# PubSub Tables

CREATE TABLE ofPubsubNode (
  serviceID           VARCHAR(100)  NOT NULL,
  nodeID              VARCHAR(100)  NOT NULL,
  leaf                TINYINT       NOT NULL,
  creationDate        CHAR(15)      NOT NULL,
  modificationDate    CHAR(15)      NOT NULL,
  parent              VARCHAR(100)  NULL,
  deliverPayloads     TINYINT       NOT NULL,
  maxPayloadSize      INTEGER       NULL,
  persistItems        TINYINT       NULL,
  maxItems            INTEGER       NULL,
  notifyConfigChanges TINYINT       NOT NULL,
  notifyDelete        TINYINT       NOT NULL,
  notifyRetract       TINYINT       NOT NULL,
  presenceBased       TINYINT       NOT NULL,
  sendItemSubscribe   TINYINT       NOT NULL,
  publisherModel      VARCHAR(15)   NOT NULL,
  subscriptionEnabled TINYINT       NOT NULL,
  configSubscription  TINYINT       NOT NULL,
  accessModel         VARCHAR(10)   NOT NULL,
  payloadType         VARCHAR(100)  NULL,
  bodyXSLT            VARCHAR(100)  NULL,
  dataformXSLT        VARCHAR(100)  NULL,
  creator             VARCHAR(255) NOT NULL,
  description         VARCHAR(255)  NULL,
  language            VARCHAR(255)  NULL,
  name                VARCHAR(50)   NULL,
  replyPolicy         VARCHAR(15)   NULL,
  associationPolicy   VARCHAR(15)   NULL,
  maxLeafNodes        INTEGER       NULL,
  PRIMARY KEY (serviceID, nodeID)
);

CREATE TABLE ofPubsubNodeJIDs (
  serviceID           VARCHAR(100)  NOT NULL,
  nodeID              VARCHAR(100)  NOT NULL,
  jid                 VARCHAR(255)  NOT NULL,
  associationType     VARCHAR(20)   NOT NULL,
  PRIMARY KEY (serviceID, nodeID, jid(70))
);

CREATE TABLE ofPubsubNodeGroups (
  serviceID           VARCHAR(100)  NOT NULL,
  nodeID              VARCHAR(100)  NOT NULL,
  rosterGroup         VARCHAR(100)   NOT NULL,
  INDEX ofPubsubNodeGroups_idx (serviceID, nodeID)
);

CREATE TABLE ofPubsubAffiliation (
  serviceID           VARCHAR(100)  NOT NULL,
  nodeID              VARCHAR(100)  NOT NULL,
  jid                 VARCHAR(255) NOT NULL,
  affiliation         VARCHAR(10)   NOT NULL,
  PRIMARY KEY (serviceID, nodeID, jid(70))
);

CREATE TABLE ofPubsubItem (
  serviceID           VARCHAR(100)  NOT NULL,
  nodeID              VARCHAR(100)  NOT NULL,
  id                  VARCHAR(100)  NOT NULL,
  jid                 VARCHAR(255)  NOT NULL,
  creationDate        CHAR(15)      NOT NULL,
  payload             MEDIUMTEXT    NULL,
  PRIMARY KEY (serviceID, nodeID, id)
);

CREATE TABLE ofPubsubSubscription (
  serviceID           VARCHAR(100)  NOT NULL,
  nodeID              VARCHAR(100)  NOT NULL,
  id                  VARCHAR(100)  NOT NULL,
  jid                 VARCHAR(255) NOT NULL,
  owner               VARCHAR(255) NOT NULL,
  state               VARCHAR(15)   NOT NULL,
  deliver             TINYINT       NOT NULL,
  digest              TINYINT       NOT NULL,
  digest_frequency    INT           NOT NULL,
  expire              CHAR(15)      NULL,
  includeBody         TINYINT       NOT NULL,
  showValues          VARCHAR(30)   NULL,
  subscriptionType    VARCHAR(10)   NOT NULL,
  subscriptionDepth   TINYINT       NOT NULL,
  keyword             VARCHAR(200)  NULL,
  PRIMARY KEY (serviceID, nodeID, id)
);

CREATE TABLE ofPubsubDefaultConf (
  serviceID           VARCHAR(100)  NOT NULL,
  leaf                TINYINT       NOT NULL,
  deliverPayloads     TINYINT       NOT NULL,
  maxPayloadSize      INTEGER       NOT NULL,
  persistItems        TINYINT       NOT NULL,
  maxItems            INTEGER       NOT NULL,
  notifyConfigChanges TINYINT       NOT NULL,
  notifyDelete        TINYINT       NOT NULL,
  notifyRetract       TINYINT       NOT NULL,
  presenceBased       TINYINT       NOT NULL,
  sendItemSubscribe   TINYINT       NOT NULL,
  publisherModel      VARCHAR(15)   NOT NULL,
  subscriptionEnabled TINYINT       NOT NULL,
  accessModel         VARCHAR(10)   NOT NULL,
  language            VARCHAR(255)  NULL,
  replyPolicy         VARCHAR(15)   NULL,
  associationPolicy   VARCHAR(15)   NOT NULL,
  maxLeafNodes        INTEGER       NOT NULL,
  PRIMARY KEY (serviceID, leaf)
);

# Finally, insert default table values.

INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 2);

INSERT INTO ofVersion (name, version) VALUES ('openfire', 21);

# Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
    VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');

# Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);

 

 

8、 选择特性配置,默认即可

9、 管理员邮件,可以跳过这步

10、 安装完成

进入管理员控制台页面

 

11、 进入http://127.0.0.1:9090/login.jsp页面后,输入admin、密码admin登陆进入

 

12、 进入后可以看到

 

服务器名称就是jwchat的连接地址;你可以使用Spark、jwchat链接这个地址进行IM通信聊天……

至此,openfire的安装和配置已经完成。下一篇文章开始完成jwchat的安装和配置。

如果你需要更换服务器名称ip,请看下一篇文章!http://www.cnblogs.com/hoojo/archive/2012/05/17/2506845.html

转自:http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html

 linux云主机上配置:

首先mysql连接要安装jdbc,

1.下载jdbc tar.gz ,然后tar -xzvf  mysql-connector-java-5.1.33.tar.gz

生成的jar包复制到/usr/java/jdk1.7.0_67/jre/lib/ext。

jdbc测试:

import java.sql.*;  
  
import com.mysql.jdbc.Statement;  
  
  
public class Driver {  
    public static void main(String[] args){   
      try {  
             
            Class.forName("com.mysql.jdbc.Driver");  
            System.out.println("测试通过");  
            java.sql.Connection conn;  
            conn=DriverManager.getConnection("jdbc:mysql://localhost/test","root","*****");  
            System.out.println("conn-------------"+conn);  
            Statement stmt=(Statement) conn.createStatement();  
            ResultSet rs=stmt.executeQuery("select * from mytable");  
            while(rs.next()){                            
            String name=rs.getString("name");  
             String sex=rs.getString("sex");  
             System.out.println("name------"+name+"--------sex-"+sex);  
            }  
           } catch (ClassNotFoundException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
           } catch (SQLException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
           }  
}  
    }  

javac Driver.java

然后java Driver

报错:

root@iZ23onhpqvwZ:~# java Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at Driver.main(Driver.java:11)

找不到jdbc的jar包。

编辑/etc/environment,增加classpath 变量:

增加::$JAVA_HOME/jre/lib/ext/mysql-connector-java-5.1.33-bin.jar

这个方法原因看:http://bbs.csdn.net/topics/10038471

然后source /etc/environment.

然后javac,java。

ok。成功,测试通过。

 linux安装openfire:

1.源代码安装:

3.安装Openfire
将下载的openfire安装包拷贝到/opt目录,进入/opt运行以下命令进行解压安装。
tar -xzvf openfire_3_5_1.tar.gz
在mysql中创建数据库,导入openfire数据录对应的sql,创建数据表
mysql> create database openfire;
mysql> use openfire
mysql> source /opt/openfire/resources/database/openfire_mysql.sql;
 (或者通过web界面配置)
4、启动安装openfire
/opt/openfire/bin/openfire start
打开浏览器开始设置openfire http://[server ip]:9090,根据向导设置,其中数据库选择“外部数据库”,然后填入相关信息一直下一步安装到底。
openfire安装完毕了,就可以登录了。

 

2.dpkg安装deb包:

 

# dpkg -i openfire_3.7.1_all.deb

经过以上软件已经完成安装,此时需要修改一下openfire的启动文件(/etc/init.d/openfire)修改一下地方(红色,需要根据java的安装情况定):
    JAVA_HOMES="/usr/lib/jvm/default-java \
/usr/lib/jvm/java-7-sun \
/usr/lib/jvm/java-6-sun \
/usr/lib/jvm/java-1.6.0-openjdk-i386 \
/usr/lib/jvm/java-7-openjdk-i386 \
/usr/lib/jvm/java-7-openjdk \
/usr/lib/jvm/java-6-openjdk-i386 \
/usr/lib/jvm/java-6-openjdk"
 
之后最好重新启动服务器。
如果openfire没有启动,可以通过/etc/init.d/openfire start启动服务。
 
最后用浏览器 http://ip:9090来配置openfire。