私の JSF プロジェクト ワークスペースには、Java プロジェクトAと、Java プロジェクトを使用する Weblogic EJB プロジェクトBがあります。
EAR を生成すると、プロジェクト A と B の jar が、ワークスペース内の他のプロジェクトの jar と同様に EAR にあることがわかります。
ただし、B の A からクラスにアクセスしようとすると、クラスが見つからないという例外が発生します。
EJB プロジェクトBには がmanagedbean/dao/ejb/delegate
あり、この時点では EJB はまったく呼び出されていません。ManagedBean がインスタンス化され、別のアクション呼び出しから、問題のあるクラスが呼び出された場所からメソッド (loadWorklist) を呼び出しています。
不足している特定の設定はありますか?
これは、UNIX サーバーの weblogic 9.2 で EAR としてデプロイされることに注意してください。必要なすべての jar は、実行時に EAR 内からロードされますが、プロジェクト A のクラスのみが欠落しています。
エラーからのスタック トレース:
javax.faces.FacesException: Error calling action method of component with id worklistForm:_idJsp131
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
at javax.faces.component.UICommand.broadcast(UICommand.java:109)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
Truncated. see log file for complete stacktrace
javax.faces.el.EvaluationException: Exception while invoking expression #{worklistManagedBean.loadWorklist}
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:156)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
at javax.faces.component.UICommand.broadcast(UICommand.java:109)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
Truncated. see log file for complete stacktrace
java.lang.NoClassDefFoundError: com/tcs/nextgen/workflow/util/WorkflowUtil
at com.ultimatix.nextgen.worklist.managedbean.WorklistManagedBean.loadWorklist(WorklistManagedBean.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
Truncated. see log file for complete stacktrace
耳の構造:
EAR
|
|-META-INF
|-library1.jar
|-library2.jar
|-A.jar
|-B.jar
これは既存のレガシー アプリであるため、jar は APP-INF/lib にありません。