在我的JSF項目工作區中,我有一個使用Java項目的Java項目A和Weblogic EJB項目B。類未找到Weblogic 9.2的例外
在生成EAR時,我可以看到項目A和B的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
由於這是一個現有的遺留應用,罐子不在APP-INF/lib中。
你能不能展示EAR的結構,以及你得到的stracktrace? – NilsH 2013-04-26 10:46:29
是否在服務器啓動時調用EJB?或在服務器啓動後執行某些操作? – Ankit 2013-04-26 10:57:51
我相信WebLogic希望公共庫在EAR的'APP-INF/lib'中。如果沒有,你可能必須將它們添加到依賴它們的jar的'MANIFEST-MF'文件中的類路徑中。如果'A'和'B'是JEE模塊,那麼後者可能就是解決方案。 – NilsH 2013-04-26 11:02:29