B3log Solo 0.6.5 在 BAE 部署无法启动 本地正常部署测试没有问题

本贴最后更新于 4142 天前,其中的信息可能已经天翻地覆

报错为 java.io.FileNotFoundException: null/skins/ease does not exist.

at org.b3log.solo.util.Skins.setDirectoryForTemplateLoading(Skins.java:144)

查找到的错误原因为 org.b3log.solo.util.Skins.setDirectoryForTemplateLoading(String).webRootPath

/b3log/src/org/b3log/solo/util/Skins.java

final String webRootPath = SoloServletListener.getWebRoot(); 无法获取到项目路径,请问是否有其他解决办法

相关帖子

欢迎来到这里!

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

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

    嗯,这个问题前几天也有同学报过,以前部署是没有问题的,估计是 BAE Java 容器最近调整过什么。
    你可以尝试在 SoloServletListener 里面实现 getWebRoot() 方法。

  • 88250

    刚刚做了一点调整,不知道有没有用,麻烦帮忙测试一下:http://pan.baidu.com/share/link?shareid=541735&uk=3255126224#dir/path=%2Fb3log-solo%2F0.6.5

  • bcsjava
    作者

    @88250 我把那个 getWebRoot() 重写了能定位到他们的 tomcar,不过貌似没用.我读取了他的 webapps 以及 ROOT 目录输出在了日志里,他的加载方式貌似有点变态.可能不是在当前的 tomcat 下,貌似配置文件也换了.读不到他的 tomcat 的配置文件, 本来想读了他们的配置文件输出在日志中的,没能成功,可能是修改了权限或者更改了 tomcat 的设置

  • bcsjava
    作者

    @88250 以及部署测试过了,这个修改过的还是不行,问题还是这个

  • bcsjava
    作者

    @88250 我读取到的 tomcat 的路径 /home/admin/runtime/tomcat/lib/ 以及 ROOT 下的文件
    asf-logo-wide.gif
    bg-nav-item.png
    bg-button.png
    tomcat.gif
    tomcat-power.gif
    bg-nav.png
    build.xml
    bg-middle.png
    RELEASE-NOTES.txt
    WEB-INF
    tomcat.css
    favicon.ico
    tomcat.png
    asf-logo.png
    bg-upper.png
    index.jsp
    tomcat.svg

  • 88250

    BAE 的 Java 运行容器不是 tomcat,是 jetty,而且应该也是修改过的....
    那个修改不生效的话说明可能因为一些原因,BAE 开发团队改写了 Servlet API 的 servletContext.getRealPath() 的实现,这个不应该返回 null 的 :(

  • bcsjava
    作者

    @88250 额 BAE java 是两个容器,一个 是 jetty 一个是 tomcat 我选择的是 tomcat

  • 88250

    哦,原来如此。这个问题现在搞定了吗?

  • bcsjava
    作者

    @88250 我草.现在麻烦越来越大了. 好多包都得重写.你们的模板加载包大部分都得重写,问题已经确定了,不是 BAE 的问题. 是项目打 war 包后的资源访问问题. 最好的解决办法是用 ServletContext.getResourceAsStream() 不过你们 模板加载类 入口 是 file 的抽空改改看看. latke 的 jar 的源码貌似我还没有. 等我找找 改改看

  • 88250

    要不这个问题我来修复吧?

  • bcsjava
    作者

    @88250 你先看看, 是 java 项目 打了 war 包之后 资源路径读取错误问题.我这边也试试.

  • 88250

    嗯,没问题,多谢帮忙了。

  • 88250

    我建了个 issue,这个 bug 这周内解决 :-p

  • 88250

    代码已经提交了,这两天有空的话请帮忙验证一下 BAE 运行。需要先拉 latke 进行构建,然后在拉 solo 进行构建。

  • bcsjava
    作者

    @88250 简单调试了下 可以了 不过有两个小的问题 repository.json 文件需要放在 根目录下, 2 是更换皮肤的话需要重启才能生效

  • 88250
    1. 刚刚提交了加载 repository.json 的方式,请更新 latke 再试试
    2. 皮肤重启才能生效的问题估计搞不定 (/ □ )
  • bcsjava
    作者

    @88250 我这不用改了,我直接改了源码.已经部署好了 http://bcsjava.duapp.com 重启的应该是 BAE 容器的事. 更新样式, 标题 什么的都的重启下

  • 88250

    嗯,好的。

    多谢帮忙发现这个严重的 bug,非常感谢 :-)

请输入回帖内容 ...

推荐标签 标签

  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖 • 3 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 367 关注
  • 钉钉

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

    15 引用 • 67 回帖 • 259 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    118 引用 • 54 回帖 • 9 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • 反馈

    Communication channel for makers and users.

    120 引用 • 906 回帖 • 279 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 253 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    27 引用 • 276 回帖 • 1 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 563 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3203 引用 • 8217 回帖 • 1 关注
  • Sphinx

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

    1 引用 • 223 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    5 引用 • 16 回帖 • 1 关注
  • Vditor

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

    378 引用 • 1866 回帖 • 2 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 183 关注
  • AWS
    11 引用 • 28 回帖 • 3 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1432 回帖
  • 国际化

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

    8 引用 • 26 回帖 • 1 关注
  • Follow
    4 引用 • 12 回帖 • 11 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    151 引用 • 257 回帖
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    46 引用 • 114 回帖 • 160 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    554 引用 • 675 回帖
  • 安全

    安全永远都不是一个小问题。

    200 引用 • 818 回帖 • 2 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    500 引用 • 1396 回帖 • 254 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    593 引用 • 3533 回帖 • 2 关注
  • Access
    1 引用 • 3 回帖 • 2 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 82 关注