`

Eclipse 3.3.2+JDK1.6+Ant 1.7+Openfire_src_3_5_1.zip

 
阅读更多
说明:开发环境(IDE):Eclipse 3.3.2+JDK1.6+Ant 1.7+Openfire_src_3_5_1.zip

1. 如果代码中使用了import testng.xxx语句,就需要导入testng-5.8-jdk15.jar类库;

2. 对于警告信息,是没有关系的。因为这些警告信息是使用1.5以上版本JDK时候才出现的,使用JDK1.4是不会出现这些警告信息的。因为这些代码中的有些是使用JDK 1.4编写的,而JDK1.4不支持泛型,而JDK 1.5和JDK1.6是支持泛型的。这些警告信息主要是提示将这些非泛型的代码修改为更加高级的方法——泛型,所以这些警告信息是不影响代码结果的。

如果需要修改为泛型也是可以,使用泛型来处理相关的集合类。

3. 在使用ant进行编译的时候,在ant视图中可能会出现警告如下信息:

taskdef class com.install4j.install4jtask cannot found

这个主要是要安装用来打包Java应用程序的install4j.exe程序,要安装到其默认的安装路径下。也就是C:\Program Files\目录下即可。

4. 在源码里面有一个文件夹里有个打包的图标,双击那个图标,install4j就会读取你在build.xml文件里的信息、在里面完成做界面等打包工作。





编译调试的环境(IDE):Eclipse 3.3.2+JDK1.6+Ant(内置)+openfire_src_2008-06-04.zip

在Windows操作系统下编译、调试openfire之前,需要确保HTTP SSL服务已经启动。否则,会出现各种错误信息。

1. 获取Openfire源代码

从官方网站上直接下载官方发布版本的源代码openfire_src_2008-06-04.zip源代码压缩包;

2. 创建openfire工程

将openfire_src_2008-06-04.zip解压后,目录下除了READEME.html、LICENSE.html和changelog.html三个网页文件之外,有下面四个子目录。

build目录:build目录下收录的是生成安装文件(例如:rpm)所要的一些文件,例如JRE等。

resources目录:resources目录下收录的是一些为实现国际化(i18n)和本地化的一些编码文件(例如:英文,中文,法文,德文等)。

documentation目录:documentation目录下收录的是一些关于Openfire安装和配置的信息,但最终要的是这里有Openfire开发的Javadoc。

src目录:这个src文件夹就是我们想要的Openfire源代码了,这下面又有许多文件夹,我们只要Java文件夹就好,这里面实现的Openfire的核心功能,通过它就可以调试Openfire。

如果您是做二次开发,为了定制自己的服务器端,就可以采用这样方法:

(1)新建工程:File->New->Project->Java Project,单击Next,在Project name文本框中输入工程名:openfire,单击Finish

(2)解压后得到的openfire_src_3_5_1\src目录下所有内容复制到新建的工程目录workspace\openfire下

(3)在Package Explorer视图中,右击openfire工程,选择Properties,在弹出的对话框中选择Libraries->Add JARs..,把openfire_src_3_5_1/build/lib目录下的*.jar类库全部添加进来;选择Source标签页,Add Folder..,选中src/java目录前的复选框,点击OK,点击OK按钮。

(在Eclipse中将此Java文件夹当成源代码文件夹新建工程,建立新工程后观察Openfire所import的包,发现Openfire用了许多开源工具,而这些库都在上文提到的Build目录的lib目录下,将Openfire用到的库都添加到这个新建工程的Referenced Libraries中。或者如果这样一个一个添加比较麻烦的话还有一个方法就是从你安装好的Openfire服务器目录下的lib目录中(例如:”D:\Program Files\Openfire\lib”或“/usr/local/openfire/lib”)找到openfire.jar,打开后将里面的org/jivesoftware删除,重新打包成jar并添加到这个新建工程的Referenced Libraries中,这样就可以省去了很多类似的工作。)

(4)但是这样新建的openfire项目没有打包部署,需要开发者自己完成相应的工作。

注意:新建工程之后,可能会出现一些警告信息,下面对此予以说明:

对于警告信息,是没有关系的。因为这些警告信息是使用1.5以上版本JDK时候才出现的,使用JDK1.4是不会出现这些警告信息的。因为这些代码中的有些是使用JDK 1.4编写的,而JDK1.4不支持泛型,而JDK 1.5和JDK1.6是支持泛型的。这些警告信息主要是提示将这些非泛型的代码修改为更加高级的方法——泛型,所以这些警告信息是不影响代码结果的。如果需要修改为泛型也是可以,使用泛型来处理相关的集合类。

3. 编译工程

openfire是用ant构建的,所以要先设置使得eclipse中每次编译都使用内置的ant工具,保证编译的正确执行。同时,要在Eclipse中设置为使用JDK作为JVM,如果使用JRE作为JVM,编译就会失败。

因为openfire在Windows下是使用install4j打包成.exe格式的安装文件的,所以需要安装install4j。否则,在使用ant进行编译的时候,在ant视图中可能会出现警告如下信息:taskdef class com.install4j.install4jtask cannot found。这主要是要安装用来打包Java应用程序的install4j.exe程序,而且将要安装到其默认的安装路径C:\Program Files\install4j下。

注意:有时候在Windows下安装的时候,可能会出现如下图所示的错误,而导致无法安装

但是,只要将安装程序install4j_windows_4_1_2_with_jre.exe拷贝到上面提示的目录下进行安装就可以安装成功,如复制到C:\Documents and Settings\liaolonglong目录下。

(1)在eclipse中点击Window->Show View->Ant,打开Ant窗口;

(2)在Ant 视图中,单击右键,在弹出的快捷菜单中选择Add Buildfiles..;

(3)在弹出的对话框中,展开openfire/build文件夹,选择build目录下的build.xml,点击OK;

(4)在Ant视图中, 展开Openfire XMPP Server,双击 openfire(default)编译工程

(5)如果在Console视图中显示“BUILD SUCCESSFUL”就表示编译成功。




7. 创建项目Builder

(1)在eclipse的菜单栏中,选择Run->Open Run Dialog...,在弹出的对话框左侧的树形结构中选择Java Application,单击右键,选择New创建启动配置。

(2) 在Run窗口的Main选项卡中, 修改Name文本框中的值,改成包含要启动的类的工程名openfire

(3)在Run窗口的Main选项卡中,点Browse按钮,选择openfire

(4)在Run窗口的Main选项卡中,点Search按钮,选择Main class为

org.jivesoftware.openfire.starter.ServerStarter,单击Apply按钮。(这是openfire的启动类)

(5)点击进入Arguments选项卡,在VM arguments文本框中输入

-DopenfireHome="${workspace_loc:openfire}/target/openfire"

单击Apply按钮。这个是用于eclipse执行java命令时传递的参数,这样openfire程序可以通过System.getProperty(“openfireHome”)得到openfire的本地位置。

(6)点击进入Classpath选项卡,选中User Entries,这样Advanced...就处于可用状态;点击Advanced...按钮,在Advanced Options页面,选择Add Folders, 单击OK。(默认情况下,已经将工程openfire添加到了这里,而不需要进行该项操作,如果有多个工程的时候才需要执行该项操作。)

选择openfire\src\i18n, 点OK按钮将这个文件夹加入到Classpath选项卡中;同样的方式把openfire\src\resources目录下的jar文件夹也加到Classpath选项卡中。

(11)在Common选项卡中,勾选Run复选框,单击Apply按钮。

设置完毕,这样以后在run这个工程的时候就会按照正确的配置进行了,debug的设置和run的设置类似,不再多说。

注意:提示错误如下:

HTTP ERROR: 500

INTERNAL_SERVER_ERROR

RequestURI=/setup/index.jsp

Caused by:

java.lang.NullPointerException

       at org.jivesoftware.admin.AdminConsole.getAppName(AdminConsole.java:122)

       at org.jivesoftware.openfire.admin.decorators.setup_jsp._jspService(setup_jsp.java:168)

       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

       at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

       at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

       at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)

       at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

       at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

       at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

       at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

       at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192)

       at com.opensymphony.module.sitemesh.filter.PageFilter.applyDecorator(PageFilter.java:156)

       at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:59)

       at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

       at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:66)

       at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

       at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:42)

       at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

       at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:70)

       at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

       at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:99)

       at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)

       at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

       at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

       at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

       at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

       at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

       at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)

       at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

       at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

       at org.mortbay.jetty.Server.handle(Server.java:324)

       at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

       at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)

       at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

       at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

       at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

       at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

Powered by Jetty://

这时因为是文件路径所导致的问题,需要将admin-sidebar.xml和openfire_i18n_en.properties这2个文件直接放在openfire\bin目录下即可解决这个问题。

如果再次出现,这样的问题,就需要将openfire目录下的你把openfire下的work 和target文件都删除了,然后重新发布一个。因为web的内容不会自动更新的,只有.class会自动更新。
分享到:
评论

相关推荐

    Openfire调试、编译开发环境与安装

    在本文中,我们将介绍如何配置Eclipse 3.3.2+JDK1.6+Ant 1.7+Openfire_src_3_5_1.zip的开发环境,编译和调试Openfire服务器端软件。 一、开发环境配置 1. 安装Eclipse 3.3.2 首先,我们需要安装Eclipse 3.3.2,这...

    org.eclipse.jface.text_3.3.2.r332_20071017-0800.jar

    适用于Myeclipse6.5,清除空格,;,=自动上屏。。下载后将后缀的修改删掉,替换eclipse\plugin\下的同名文件即可

    Hibernate3.3.2+Spring2.5.5+Struts2.1.6+Extjs3.0.0

    ### Hibernate3.3.2+Spring2.5.5+Struts2.1.6+Extjs3.0.0_Annotations方式快速开发框架 #### 一、概述 本资料介绍了一个基于Hibernate 3.3.2、Spring 2.5.5、Struts 2.1.6和Extjs 3.0.0的技术栈实现的快速开发框架...

    交叉编译工具链cross-3.3.2.tar.bz2_part1

    交叉编译工具链cross-3.3.2.tar.bz2_part1

    Sqlite.Developer.V3.3.2+Crack

    Sqlite.Developer.V3.3.2+Crack,自己正在用。比2.9.X版本的改进了许多。如果你开发中要用到sqlite,这个是不错的选择。

    SSH整合(struts2.3.16.1+Hibrnate3.3.2+spring2.5.6)

    SSH整合(struts2.3.16.1+Hibrnate3.3.2+spring2.5.6) 从最基础的jsp开始整合,然后一个一个框架的添加,最后为(struts2.3.16.1+Hibrnate3.3.2+spring2.5.6) 适合初学者,如果对您有帮助,请给个好评!

    mpich-3.3.2.tar.gz+GotoBLAS2-1.13.tar.gz+lapack-3.1.1.tgz.rar

    这里提到的“mpich-3.3.2.tar.gz+GotoBLAS2-1.13.tar.gz+lapack-3.1.1.tgz.rar”是一个压缩包,包含了用于搭建linpac环境的关键组件。让我们逐一分析这些组件及其在构建linpac环境中的作用。 首先,`mpich-3.3.2....

    ACCP5.0 - S1期Java项目之学员管理系统完整项目源码

    【标签】"调试环境:Eclipse 3.3.2 + JDK 1.6 u6" 提供了项目开发时使用的开发工具和运行环境。Eclipse 3.3.2是一个流行的Java集成开发环境(IDE),支持代码编辑、调试和构建等功能。JDK 1.6 u6是Java Development ...

    jboss-logging-3.3.2.Final-API文档-中文版.zip

    包含翻译后的API文档:jboss-logging-3.3.2.Final-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.jboss.logging:jboss-logging:3.3.2.Final; 标签:jboss、logging、jar包、java、API文档、中文版; 使用方法...

    eclipse3.3.2

    1. **Eclipse IDE的基础架构**: Eclipse 平台基于插件系统构建,允许用户根据需求安装和卸载不同的功能模块。这种设计灵活性高,可以满足不同类型的开发需求。Eclipse 3.3.2版本继承了这一特性,让用户可以选择性...

    org.eclipse.swt 相关jar包

    org.eclipse.swt 相关jar包,JAVA调用火狐内核制作浏览器教程中所需,供各位下载,可在我的博客中查看详细用法。

    交叉编译工具链cross-3.3.2.tar.bz2_part2

    交叉编译工具链cross-3.3.2.tar.bz2_part2

    hibernate3.3.2+commons-lang2.3+slf4j1.5.8+log4j1.2.16.zip

    首先,`Hibernate3.3.2`是流行的关系对象映射(ORM)框架,它允许Java开发者使用面向对象的方式处理数据库操作。Hibernate简化了数据库访问,通过将Java对象与数据库表进行映射,从而避免了编写大量的SQL代码。它的...

    MyEclipse_6.6.0_E3.3.2_Installer.z04

    MyEclipse_6.6.0_E3.3.2_Installer.z04

    hibernate-distribution 3.3.2+annotation3.4.0+slf4j-1.5.8.rar )

    《深入理解Hibernate 3.3.2 + Annotation 3.4.0 + SLF4J 1.5.8 整合技术》 在Java世界里,Hibernate作为一款优秀的对象关系映射(ORM)框架,极大地简化了数据库操作。Hibernate 3.3.2是其历史版本中的一个重要里程...

    smslib-3.3.2.jar.zip_use

    【smslib-3.3.2.jar.zip_use】是一个包含SMSlib 3.3.2版本的Java库的压缩文件,主要用于短信通信功能。SMSlib是一个开源的Java库,允许开发者通过各种接口(如GSM调制解调器、AT命令、SMPP协议等)发送和接收短信。...

    postgres14.5+postgis3.3.2+pgRouting3.4.2

    标题中的"postgres14.5+postgis3.3.2+pgRouting3.4.2"是一个关于数据库系统的组合,其中包括 PostgreSQL 14.5 数据库、PostGIS 3.3.2 扩展以及 pgRouting 3.4.2 模块。PostgreSQL 是一个开源的对象关系型数据库系统...

    常用jar包struts2.1.8_hibernate3.3.2+spring2.5_lib.rar

    这个"常用jar包struts2.1.8_hibernate3.3.2+spring2.5_lib.rar"压缩文件包含了这三个框架的核心库,是进行SSH2整合开发的基础。 首先,我们来看Struts2,它是Apache基金会的一个开源MVC(Model-View-Controller)...

    ubuntu下安装eclispe3.3.2+myeclispe6.5

    在Ubuntu 8.04操作系统环境下安装Eclipse 3.3.2和MyEclipse 6.5是一个涉及Java开发环境构建的过程。Eclipse是一款开源的集成开发环境(IDE),适用于多种编程语言,而MyEclipse是其商业扩展,特别为Java EE开发者...

    org.eclipse.jgit.ant-3.3.2.201404171909-r.zip

    标题 "org.eclipse.jgit.ant-3.3.2.201404171909-r.zip" 指的是一个Eclipse JGit的Ant任务库,该库版本为3.3.2,发布日期为2014年4月17日。Eclipse JGit是一个用Java实现的轻量级、纯Java库,主要用于处理Git版本...

Global site tag (gtag.js) - Google Analytics