日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openfire(一):使用idea编译openfire4.2.3源码

發布時間:2023/12/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openfire(一):使用idea编译openfire4.2.3源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近公司項目要使用openfire,并對源碼做一些修改,使用的openfire版本為官網目前最新版本4.2.3,網上資料較少,踩了很多坑,特此記錄。

1.下載源碼

http://www.igniterealtime.org/downloads/source.jsp

2.使用idea導入源碼

File-New-Project from Existing Sources 導入解壓后的源碼

一路next

導入后的目錄結構如下

設置Project SDK

打開File-Project Structure(本人使用的jdk1.8)

3.使用ant編譯源碼

  a)打開右側ant build菜單,點擊+號,選擇openfire-src-build下的build.xml文件

  b)點擊ant build菜單藍色按鈕(第四個)過濾

  c)選擇openfire后點擊run按鈕

4.配置運行參數

  a)選擇application

  b)設置一些啟動參數如圖所示

  c)啟動(注意:此步會報一些錯,下面一一解決

Q:Error:java: 無效的源發行版: 1.9

A:此處選擇8

?Q:Error:(571, 21) java: 無法訪問org.apache.tools.ant.Task

  找不到org.apache.tools.ant.Task的類文件

?

A:缺少ant包

?   1.將idea路徑下或者自己下載的ant.jar復制到openfire_src>build->ib>ant目錄和openfire_src>build->ib>merge目錄下

? ? ? ?2.打開project structure,選擇libraries下的ant和merge,將剛才的ant.jar添加進去

  ? ?3.選擇project structure-modules-tools模塊,加入ant依賴

?Q:啟動成功,打開控制臺頁面報

HTTP ERROR 404

Problem accessing /login.jsp. Reason:

/login.jsp

?


Powered by Jetty://

A:在web>WEB-INF>web.xml中添加

<jsp-config>
<taglib>
<taglib-uri>admin</taglib-uri>
<taglib-location>/WEB-INF/admin.tld</taglib-location>
</taglib>
</jsp-config>
然后使用ant重新編譯后啟動


Q:再次啟動后報500錯誤

HTTP ERROR 500

Problem accessing /setup/index.jsp. Reason:

Server Error

?

Caused by:

java.lang.NullPointerExceptionat org.jivesoftware.admin.AdminConsole.getAppName(AdminConsole.java:105)at org.jivesoftware.openfire.admin.decorators.setup_jsp._jspService(setup_jsp.java:192)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:595)at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)at org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:115)at com.opensymphony.module.sitemesh.filter.PageFilter.applyDecorator(PageFilter.java:156)at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:59)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:73)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:49)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:226)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:215)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)at org.eclipse.jetty.server.Server.handle(Server.java:499)at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)at java.lang.Thread.run(Thread.java:748)
A:缺少配置文件
  1.將D:\IntelliJ IDEA 2017.3.3\workspace\openfire_src\src\resources\jar下的admin-sidebar.xml復制到D:\IntelliJ IDEA 2017.3.3\workspace\openfire_src\out\production\openfire_src
  2.將D:\IntelliJ IDEA 2017.3.3\workspace\openfire_src\src\i18n下的所有文件復制到D:\IntelliJ IDEA 2017.3.3\workspace\openfire_src\out\production\openfire_src

成功進入控制臺!!!

?

?

轉載于:https://www.cnblogs.com/lullaby/p/8980534.html

總結

以上是生活随笔為你收集整理的openfire(一):使用idea编译openfire4.2.3源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。