Javascript WebLogic 上的 Liferay 无法快速加载

Javascript fast load does not work in Liferay on WebLogic

我已经在 WebLogic 服务器 10.3.6.0 上部署了 Liferay 6.2 GA4 门户。如果启用 javascript.fast.load 属性,则不会从 /combo url 获取(下载)打包的 javascript 版本。在 Web 浏览器控制台中显示以下错误:

GET https://www.mywebsite.cz/liferay-portal/combo/?browserId=other&minifierType=&languageId=en_US&b=6203&t=1448975784000&/liferay-portal/html/js/aui/color-base/color-base-min.js&/liferay-portal/html/js/aui/event-touch/event-touch-min.js&/liferay-portal/html/js/liferay/dockbar.js 404 (Not Found)

Uncaught TypeError: Cannot read property 'init' of undefined

因此,例如停靠栏不起作用。从源代码看来,ComboServlet 无法获取在 /combo url 参数中找到的 servlet 资源。如果 javascript.fast.load 被禁用,门户似乎可以工作。

Weblogic.xml:

<weblogic-web-app
    xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd"
>
    <jsp-descriptor>
        <keepgenerated>true</keepgenerated>
        <page-check-seconds>60</page-check-seconds>
    </jsp-descriptor>
    <session-descriptor>
        <persistent-store-type>replicated_if_clustered</persistent-store-type>
    </session-descriptor>

    <container-descriptor>
        <prefer-application-packages>
            <package-name>antlr.*</package-name>
            <package-name>com.ctc.wstx.*</package-name>
            <package-name>org.antlr.*</package-name>
            <package-name>org.apache.commons.lang.*</package-name>
            <package-name>org.mozilla.*</package-name>
            <package-name>org.xmlpull.*</package-name>
        </prefer-application-packages>
        <optimistic-serialization>true</optimistic-serialization>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
    </container-descriptor>
    <context-root>/liferay-portal</context-root>

    <library-ref>
        <library-name>ext-portal-dependencies</library-name>
        <specification-version>1.0</specification-version>
        <implementation-version>1.0</implementation-version>
        <exact-match>false</exact-match>
    </library-ref>
</weblogic-web-app>

有人知道可能是什么问题吗?某些 WebLogic 或 Liferay 设置?感谢您的任何想法或帮助。

我很久以前在 tomcat 遇到过类似的问题,当时临时文件路径有问题 - 例如它长得太长了。这可能发生在深度嵌套的文件系统中,或者当总路径长度有限时。

我知道的路径长度限制因素之一是 Linux 上的加密主文件夹。此外,如果临时文件系统已满,则不会写入压缩文件,因此无法提供给浏览器。

按照这些思路检查一些内容,请反馈。

经过几天的解决,我发现这个问题的主要原因是这样的:

因为客户不想将门户依赖项(portal-service.jar,portlet-api.jar,...)作为域库,所以我将其部署为 Java EE 共享库。显然它的工作方式与我预期的不同。所以在客户的劝说下,我将 liferay 依赖项放到域 lib 文件夹中,突然一切都开始工作了。