Weblogic Server

时间:2017-09-06 09:07:02

标签: angularjs spring-boot gradle weblogic12c webjars

如何才能从Weblogic Server上的Angular应用程序访问Webjars?

我收到了在Tomcat上运行的基本临时项目,但在Weblogic上它运行不正常。经过一些修改,我能够部署应用程序,但我无法正常运行它。 webjars仍然不可见。更重要的是,我还发现对于Weblogic 12C,我应该在Gradle中使用这种依赖:

compile 'org.webjars:webjars-locator-weblogic:0.9'

但之后,我无法部署应用程序,因为我收到错误“URI不是分层的”。如果没有这种依赖关系,我可以部署应用程序并查看index.html,但它指向其他js文件,如下所示:

<script data-main="js/configImport" src="webjars/requirejs/require.min.js"></script>

包含以下内容:

require.config({

    map: {
        '*': {
            'css': 'webjars/require-css/css'
        }
    },

    paths: {
        'angular': 'webjars/angularjs/angular.min',
        'myApp': 'js/app',
        'cssCore': 'js/cssCore'
    },

    shim: {
        'angular': {exports: 'angular'},
    },

    baseUrl: '.'
});

require(['angular', 'myApp', 'cssCore', 'js/controllers/MainCtrl'], function (angular) {
    angular.bootstrap(document, ['myApp']);
});

我还尝试将此行添加到servlet.xml文件中:

<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>

但没有成功。

所有webjars都由Gradle作为依赖项添加。 spring-bootwebjars-locator处于编译级别,其余部分在运行时级别为angularjs

我错过了什么?在这种情况下我应该怎么做才能使它发挥作用?

更新:

我正在使用webjars-locator-weblogic添加部署中的stack trace。问题是我是否需要同时放置webjars-locatorwebjars-locator-weblogic或仅使用weblogic版本? 我尝试了两种情况,在这两种情况下我都得到了同样的错误。我尝试通过添加WebConfig类来解决此问题,例如已完成here,甚至在Main类中添加代码,就像在同一链接下完成但在主题Enhanced support for RequireJS 。不幸的是它对我不起作用。我仍然无法访问网络浏览器。

1 个答案:

答案 0 :(得分:1)

不知道你是否已经使用它,但是对于我来说,使用weblogic 12.2.1.3的是:

<mvc:resources mapping="/webjars/**" location="classpath:META-INF/resources/webjars/"/>

然后正确解析所有js / css。 示例:<script type="text/javascript" src="/app-name/webjars/angular/1.6.6/angular.js"></script>

一方面没有,我正在使用&#34;标准&#34;春天,不开机。但是,不应该有任何不同。 Webjars包含在战争中(在WEB-INF \ lib中),而其余的依赖项(spring,aspectj,其他应用程序模块等)都打包在ear包内。 构建归结为包含以下内容的耳包:

  • 所有项目依赖项(在/ lib文件夹中)
  • war文件,其中只包含带有webjars的webapp(WEB-INF \ lib)

我无法使用weblogic是与版本无关的定位器。尝试过标准的webjars-locator和webjars-locator-weblogic都没有运气。

[编辑] 在旁注中,我确实得到了相同的错误(URI不是分层的),当我错误地将webjar依赖项放在ear模块而不是war模块上时。 将他们置于战争之后,我发现weblogic相当敏感&#34;关于servlet映射。我有标准的servlet映射模式到root(就像我通常在其他服务器上一样),并且它在某种程度上弄乱了其余的映射(包括webjars)。最后,我必须指定一个url模式,然后单独由Spring处理。