今天服务器在运行过程中抛出了如下错误,导致无法访问

本贴最后更新于 1827 天前,其中的信息可能已经斗转星移
[ERROR]-[2019-04-25 15:22:00]-[org.b3log.symphony.service.ArticleQueryService:1569]: Organizes article [1555745058690] failed
java.lang.NullPointerException
[ERROR]-[2019-04-25 15:22:00]-[org.b3log.symphony.service.ArticleQueryService:1569]: Organizes article [1555744835700] failed
java.lang.NullPointerException
[ERROR]-[2019-04-25 15:22:00]-[org.b3log.latke.servlet.renderer.AbstractFreeMarkerRenderer:131]: Renders template [search-articles.ftl] failed [Request [
    method=GET,
    URL=http://qiankunpingtai.cn:443/symphony/search,
    contentType=null,
    characterEncoding=UTF-8,
    local=[
        addr=127.0.0.1,
        port=8081,
        name=localhost],
    remote=[
        addr=61.130.*.*,
        port=45628,
        host=127.0.0.1],
    headers=[
        host=qiankunpingtai.cn:443
        remote-host=61.130.*.*
        x-real-ip=61.130.*.*
        x-forwarded-for=61.130.*.*
        connection=close
        accept=*/*
        user-agent=Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
        accept-encoding=gzip, deflate
    ]
]]
FreeMarker template error:
The following has evaluated to null or missing:
==> article.articleTagObjs  [in template "classic/common/list-item.ftl" at line 22, column 16]


Tip: It's the step after the last dot that caused this error, not those before it.

Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??



FTL stack trace ("~" means nesting-related):
	- Failed at: #list article.articleTagObjs as artic...  [in template "classic/common/list-item.ftl" at line 22, column 9]
	- Reached through: #include "common/list-item.ftl"  [in template "classic/macro-list.ftl" in macro "list" at line 28, column 9]
	- Reached through: @list listData=articles  [in template "classic/search-articles.ftl" at line 42, column 25]


Java stack trace (for programmers):

freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
	at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
	at freemarker.core.Expression.assertNonNull(Expression.java:233)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:103)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:93)
	at freemarker.core.Environment.visit(Environment.java:330)
	at freemarker.core.Environment.visit(Environment.java:336)
	at freemarker.core.Environment.include(Environment.java:2582)
	at freemarker.core.Include.accept(Include.java:171)
	at freemarker.core.Environment.visit(Environment.java:366)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:317)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:242)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:642)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:107)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:93)
	at freemarker.core.Environment.visit(Environment.java:366)
	at freemarker.core.Environment.invoke(Environment.java:775)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
	at freemarker.core.Environment.visit(Environment.java:330)
	at freemarker.core.Environment.visit(Environment.java:336)
	at freemarker.core.Environment.visit(Environment.java:336)
	at freemarker.core.Environment.process(Environment.java:309)
	at freemarker.template.Template.process(Template.java:384)
	at org.b3log.latke.servlet.renderer.AbstractFreeMarkerRenderer.genHTML(AbstractFreeMarkerRenderer.java:154)
	at org.b3log.symphony.processor.SkinRenderer.genHTML(SkinRenderer.java:137)
	at org.b3log.latke.servlet.renderer.AbstractFreeMarkerRenderer.render(AbstractFreeMarkerRenderer.java:125)
	at org.b3log.latke.servlet.DispatcherServlet.result(DispatcherServlet.java:118)
	at org.b3log.latke.servlet.DispatcherServlet.handle(DispatcherServlet.java:97)
	at org.b3log.latke.servlet.DispatcherServlet.service(DispatcherServlet.java:69)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
[WARN ]-[2019-04-25 15:22:06]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post

  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6546 引用 • 29416 回帖 • 244 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖

相关帖子

被采纳的回答
  • 88250

    这个异常可能是其他异常引起的,比如连接池耗尽,你再仔细看下日志,看看有没有获取连接失败的。如果有,那有可能是被 CC 攻击了。

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    收到,已经更新,感谢反馈。

  • 其他回帖
  • qiankunpingtai
    作者
    [WARN ]-[2019-04-25 15:16:09]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/settings/avatar
    [WARN ]-[2019-04-25 15:16:19]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post
    [WARN ]-[2019-04-25 15:16:25]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post
    [WARN ]-[2019-04-25 15:16:30]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/settings/function
    [WARN ]-[2019-04-25 15:16:30]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post
    [WARN ]-[2019-04-25 15:16:35]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post
    [WARN ]-[2019-04-25 15:16:38]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post
    [WARN ]-[2019-04-25 15:16:42]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post
    [WARN ]-[2019-04-25 15:16:45]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post
    [WARN ]-[2019-04-25 15:16:48]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post
    [WARN ]-[2019-04-25 15:16:48]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 404, /symphony/article/refresh
    [WARN ]-[2019-04-25 15:16:48]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 404, /symphony/article/perfect
    [WARN ]-[2019-04-25 15:16:50]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 401, /symphony/post
    [WARN ]-[2019-04-25 15:16:50]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 404, /symphony/article/iconAsk
    [WARN ]-[2019-04-25 15:16:51]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 404, /symphony/article/thumbs-up
    [WARN ]-[2019-04-25 15:16:51]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 404, /symphony/article/down
    [WARN ]-[2019-04-25 15:16:51]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 404, /symphony/article/chevron-down
    [WARN ]-[2019-04-25 15:16:52]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 404, /symphony/article/comments
    [WARN ]-[2019-04-25 15:16:52]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 404, /symphony/article/icon-report
    [WARN ]-[2019-04-25 15:16:52]-[org.b3log.latke.servlet.handler.BeforeHandleHandler:60]: Occurred an exception before request processing: 404, /symphony/article/heart 
    
  • qiankunpingtai
    作者
    [DEBUG]-[2019-04-18 10:53:39]-[org.b3log.symphony.SymphonyServletListener:194]: Request made from a search engine [User-Agent=Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)]
    [ERROR]-[2019-04-18 10:54:03]-[org.b3log.symphony.util.Geos:152]: Can't get location from Taobao [ip=113.140.16.75]
    java.io.IOException: Server returned HTTP response code: 502 for URL: http://ip.taobao.com/service/getIpInfo.php?ip=113.140.16.75
    	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894)
    	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
    	at org.b3log.symphony.util.Geos.getAddressTaobao(Geos.java:135)
    	at org.b3log.symphony.util.Geos.getAddress(Geos.java:77) 
    
  • qiankunpingtai
    作者

    有这样一个错误出现的次数非常多

    [ERROR]-[2019-04-18 10:03:48]-[org.b3log.symphony.processor.FileUploadProcessor:136]: Gets a file failed
    org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
    	at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:299)
    	at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:262)
    	at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:118)
    	at org.b3log.symphony.processor.FileUploadProcessor.getFile(FileUploadProcessor.java:133)
    	at org.b3log.symphony.processor.FileUploadProcessor_$$_jvsta93_19._d5getFile(FileUploadProcessor_$$_jvsta93_19.java)
    	at sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.b3log.latke.ioc.JavassistMethodHandler.invoke(JavassistMethodHandler.java:116)
    	at org.b3log.symphony.processor.FileUploadProcessor_$$_jvsta93_19.getFile(FileUploadProcessor_$$_jvsta93_19.java)
    	at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.b3log.latke.servlet.handler.ContextHandleHandler.handle(ContextHandleHandler.java:45)
    	at org.b3log.latke.servlet.RequestContext.handle(RequestContext.java:545)
    	at org.b3log.latke.servlet.handler.BeforeHandleHandler.handle(BeforeHandleHandler.java:81)
    	at org.b3log.latke.servlet.RequestContext.handle(RequestContext.java:545)
    	at org.b3log.latke.servlet.handler.RouteHandler.handle(RouteHandler.java:202)
    	at org.b3log.latke.servlet.RequestContext.handle(RequestContext.java:545)
    	at org.b3log.latke.servlet.handler.StaticResourceHandler.handle(StaticResourceHandler.java:118)
    	at org.b3log.latke.servlet.RequestContext.handle(RequestContext.java:545)
    	at org.b3log.latke.servlet.DispatcherServlet.handle(DispatcherServlet.java:96)
    	at org.b3log.latke.servlet.DispatcherServlet.service(DispatcherServlet.java:69)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.lang.Thread.run(Thread.java:748) 
    
  • 查看全部回帖

推荐标签 标签

  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 152 关注
  • 音乐

    你听到信仰的声音了么?

    59 引用 • 509 回帖
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 642 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    198 引用 • 120 回帖 • 1 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 369 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 1 关注
  • V2Ray
    1 引用 • 15 回帖 • 1 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 462 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    313 引用 • 1666 回帖
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    14 引用 • 7 回帖 • 1 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    85 引用 • 1201 回帖 • 449 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    51 引用 • 226 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 693 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 56 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 6 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 5 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖
  • 反馈

    Communication channel for makers and users.

    123 引用 • 906 回帖 • 192 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 404 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    75 引用 • 145 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 10 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 180 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    131 引用 • 3639 回帖
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 6 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 429 关注