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 文件夹中,突然一切都开始工作了。
我已经在 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 文件夹中,突然一切都开始工作了。