質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

WebLogic Server

WebLogic Serverとは、Oracle社が開発したJ2EEを利用したWebアプリケーションサーバです。

PrimeFaces

PrimeFacesは、トルコのソフトウェア会社Prime Teknolojiが提供する、 JSFリッチユーザーインターフェースコンポーネントです。 Apache License V2ライセンスのオープンソースソフトウェアです。

Q&A

解決済

2回答

2476閲覧

Primefacesの例外

yoshi7

総合スコア48

JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

WebLogic Server

WebLogic Serverとは、Oracle社が開発したJ2EEを利用したWebアプリケーションサーバです。

PrimeFaces

PrimeFacesは、トルコのソフトウェア会社Prime Teknolojiが提供する、 JSFリッチユーザーインターフェースコンポーネントです。 Apache License V2ライセンスのオープンソースソフトウェアです。

0グッド

0クリップ

投稿2016/04/08 14:09

JSFとPrimefacesで開発を行っております。
WebサーバはWebLogicでIDEはOEPE(eclipse)を使用しています。

eclipseからWebLogicを起動していたローカル環境では問題なく動作していましたが、
eclipseからwarを作成してリモート環境にあるWebLogicにデプロイした場合、
例外が発生してしまいます。

<BEA-000000> <Critical error during deployment:
java.lang.NoClassDefFoundError: org/primefaces/component/behavior/ajax/AjaxBehaviorListenerImpl

クラスパスが通っていないのではないかと考えましたが、
primefaces.jarはWEB-INF/libに配置しています。

また、試しにローカル環境のWebLogicに同じwarをデプロイしましたが、
正常に動作しました。

WebLogicは、ローカル環境が開発者用WebLogicで、
リモート環境用は通常のWebLogicで本番モードで起動しています。

例外が発生する原因は何が考えられるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

PrimeFacesのバグであることが解りました。
PrimeFacesとは別にPrimeFaces Extensionsも使用していて、
そのバージョンが古いことによるのが原因のようです。
PrimeFaces Extensionsのjarを2.0以上にすることによって解決しました。
WebLogicの本番モードや開発モードは関係ありませんでした。

参考元
http://forum.primefaces.org/viewtopic.php?f=3&t=38695

投稿2016/04/17 10:41

yoshi7

総合スコア48

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Weblogicは利用したことが無いため、推測レベルの回答となる点を了承下さい。
開発モードと本番モードの差異に関するコンテンツを見つけました。

WebLogic Server(12c)の開発モードと本番モードの使い分け

本番モードではではオンデマンドデプロイが無効であるとの記載が有りました。WebLogic起動のままデプロイした場合はdomainの再スタートなどなんらかの操作が必要ではないでしょうか。

オプション(JVM,WebLogic)の初期値に差異が有るようです。動作に関係してないでしょうか。
後はPrimeFacesのドキュメント(使用バージョンのもの)に依存するコンポーネントのバージョンがDependenciesに記載されていますが一致しているでしょうか。

ご承知の内容でしたら済みません。ご参考までに。

<追記>
これも参考情報にしかなりませんが、glassfishではWEB-INFフォルダは2か所有りました。
primefaces.jarが配置されているフォルダは以下になります。

プロジェクト名\build\web\WEB-INF\lib

<追記2>
下記情報を見つけました

I think you could use the weblogic.xml setting to force the WEB-INF/lib class to get loaded in preference to that in server/lib with

XML

1<container-descriptor> 2<prefer-web-inf-classes>true</prefer-web-inf-classes> 3</container-descriptor>

how-can-i-solve-a-noclassdeffounderror

投稿2016/04/09 01:29

編集2016/04/14 06:21
BlueMoon

総合スコア1339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshi7

2016/04/17 10:43

色々と調べていただきありがとうございました。 自己解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問