WAS Liberty不提供图像,css,js

时间:2014-09-10 08:55:27

标签: websphere-liberty

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

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

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

我的设置:WAS Liberty 8.5,RHEL 6.5。 Eclipse Luna,WDT 8.5.5.2。具有Eclipse结构的项目,而不是maven。 我已尝试过松散的配置和“来自工作区”设置

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

2 个答案:

答案 0 :(得分:1)

好的,发现了问题。

正如我猜测这与spring初始化有关,尽管问题与代码有关。

由于REST实现的错误实现,其中基本路径被设置为根应用程序路径(“/”),其余的API类在应用程序加载时被实例化,然后调用代码,这些代码实例化了少量的Spring bean。 但是在这一点上,Spring听众没有被解雇,因此appcontext是空的。一些基本应用程序对象正在使用空bean进行初始化,因此Spring安全上下文和相关类无法正确地提供应用程序内容。 (问题是弹簧相关的代码是由另一个团队创建的,我们只是得到了jar,因此我甚至无法正确调试它,因此我不知道它在哪里完全失败)

使Liberty具体化的事情是:同样有问题的代码在Websphere完整配置文件和Weblogic上工作正常,如果我们部署为WAR,甚至可以在Liberty上工作。不确定哪种类加载差异导致行为差异。

感谢所有花时间和努力回复的人。

答案 1 :(得分: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正在加载,没有任何问题。