WAS Liberty不提供图像,CSS,JS

问题描述 投票:0回答:2

我有一个可以在Websphere服务器上正常运行的应用程序(例如war和Eclipse Project)。通过WAR在Liberty上直接部署也可以正常工作。

我试图将其部署在WAS Liberty 通过Eclipse项目上。没有控制台错误,但是一旦应用程序加载,以下文件都不会加载到网页中:js,gif,css

由于这个原因,页面看起来失真,并且大部分功能都丢失了。令人惊讶的是,js文件夹中有一些JSP,并且这些JSP正在加载,因此看起来这些文件夹已正确发布。但是对于所有提到的文件(js等),我在浏览器控制台中收到以下错误:500(内部服务器错误)。没有错误,服务器日志也很干净。

我的设置:WAS Liberty 8.5,RHEL 6.5。 Eclipse Luna,WDT 8.5.5.2。具有Eclipse结构而不是Maven的项目。我已经尝试了宽松的配置和“从工作区”设置

Edit1:我注意到Spring bean没有正确初始化。在applicationContext.getBean上获取空指针。

websphere-liberty
2个回答
1
投票

确定,发现问题。

我猜这与弹簧初始化有关,尽管问题更多与代码有关。

由于REST实现的错误实现,在该实现中,基本路径被设置为根应用程序路径(“ /”),其余API类在应用程序加载时被实例化,然后对将实例化少数Spring Bean的代码进行调用。但是此时Spring侦听器尚未触发,因此appcontext为空。一些基础应用程序对象已使用空bean初始化,因此spring安全上下文和相关类无法正确提供应用程序内容。 (问题是与弹簧相关的代码是由另一个团队创建的,而我们只是得到了jar,因此我什至无法正确调试它,所以我不知道它到底在哪里失败)

使它特定于Liberty的原因是:如果我们将其部署为WAR,则相同的问题代码在Websphere完整概要文件和Weblogic甚至在Liberty上都可以正常工作。不确定哪种类加载差异会导致行为差异。

感谢所有花费时间和精力进行回复的人。


0
投票

[当基本路径为时,我使用开放自由和Eclipse Krazo面临相同的问题

application path (“/”)

所以我更改了路径,如下所示

package io.openliberty.sample;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("")
public class ConfigApplication extends Application {
}

现在CSS和img正在加载,没有问题。

© www.soinside.com 2019 - 2024. All rights reserved.