2017-09-06 14 views
0

Weblogic ServerのAngularアプリケーションからWebjarsにアクセスするにはどうすればよいですか?Weblogic ServerでWebjarsにアクセスできない

私はTomcat上で実行されている基本的な一時的なプロジェクトを受け取りましたが、Weblogicでは正しく機能していません。少数の変更の後、私はアプリケーションを配備することができましたが、私はそれを正しく実行することができません。 Webjarsはまだ表示されません。さらに重要なことに、私はまた、WebLogic 12Cのため、私はGradleでこの依存関係を使用する必要があることがわかった:

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

が、私はエラーを受信して​​いますので、その後、私は、アプリケーションをデプロイすることはできませんよ「URIではありません階層的 "である。私はまた、

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']); 
}); 

:この依存関係がなければ、私は、アプリケーションをデプロイして index.htmlを見ることができるよ、それは、このような他の jsファイルを指す:

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

このようなものが含まれていますservlet.xmlファイルにこの行を追加しようとしました:

ただし、成功しません。

すべてのWebjarsは、依存関係としてGradleによって追加されています。 spring-bootwebjars-locatorはコンパイルレベル、その他はランタイムレベルでangularjsです。

私には何が欠けていますか?この場合、私はそれを機能させるために何をすべきですか?

UPDATE:

私はwebjars-locator-weblogicでの展開からstack traceを追加しています。質問には、webjars-locatorwebjars-locator-weblogicの両方を入力する必要があるのか​​、またはweblogicのバージョンのみを入力する必要がありますか? 私は両方を試してみましたが、どちらの場合も同じエラーが発生しています。私はこの問題を解決するために、hereのようにWebConfigクラスを追加し、Enhanced support for RequireJSの同じリンクの下で行われたようにMainクラスにコードを追加しました。残念ながら、それは私のために働かなかった。私はまだWebjarsにアクセスできません。

+0

なぜxmlファイルですか? Tomcatにデプロイされたアプリケーションが、Weblogic上のものとは異なるものから開始され、異なる構成になるように見えます。 –

+0

@M.DeinumオリジナルアプリケーションはTomcatで動作します。私はWeblogicにそれを配備するためにいくつかの変更を加えました。私は 'servlet'と' servlet-mapping'を 'web.xml'に追加してリソースにアクセスしました。何らかの理由でそれがなければ動作しませんでした。したがって、 'servlet.xml'ファイルも必要でした。もともと ' 'という空ファイルだったのですが、この' 'が見つかりましたので、それを動作させるためにそこに追加する必要があると思いました。質問は私がWeblogic上でこれを正しく実行するためにすべきことですか?私はTomcatを気にしません。 – Lui

+0

Springブートで 'xml'ファイルを用意する必要はありません。そのため、これらの変更を元に戻し、Springブートリファレンスガイドのhttps:// docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-weblogic –

答えて

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>

サイドではなく、私は "標準"スプリングを使用していますが、ブートしません。しかし、違いはありません。 Webjarsはwar内(WEB-INF \ lib内)にパックされ、残りの依存関係(spring、aspectj、その他のアプリケーションモジュールなど)はearパッケージ内にパックされます。(WEB-INF \ libに) でwebjarsとちょうどWebアプリケーションを含む(/ libフォルダ内)

  • すべてのプロジェクトの依存関係
  • warファイルを: ビルドが含ま耳パッケージに降りてきます

    weblogicで動作しないものは、バージョンに依存しないロケータです。標準のwebjars-locatorとwebjars-locator-weblogicの両方で運がないと試してみました。

    [編集] サイドノートでは、間違いなく戦争の代わりに耳のモジュールにwebjarの依存関係を置いたときに、同じエラーが表示されました(URIは階層的ではありません)。 戦争でそれらを配置した後、私は、weblogicがサーブレットのマッピングに関してかなり敏感であることを発見しました。私はルートに標準的なサーブレットマッピングパターンを持っていました(私は通常他のサーバー上にあるように)、それは何とか残りのマッピング(webjarsが含まれています)を乱していました。最終的には、Spring以外のURLパターンを指定しなければなりませんでした。

関連する問題