2011-03-09 62 views
0

我們有一個應用程序,我們打包爲耳朵文件。我們在我們的應用中使用接縫。我們正在使用JBoss 5.1.0.GA.我們發現jboss管理控制檯存在類衝突問題,因爲它使用了接縫。因此,我們決定通過在文件.../jboss-as/server/default/deployers/ear-deployer-jboss-beans.xml中將EARClassLoaderDeployer bean的隔離屬性設置爲true來將ear部署設置爲隔離狀態。JBoss隔離耳朵部署問題 - 互相隔離的耳朵模塊

當我們這樣做時,我們開始在我們的應用程序中得到ClassNotFoundExceptions,這是意想不到的。我認爲設置孤立的耳朵部署意味着耳朵內的模塊仍然可以共享課程?

未找到的類是ejb的接口。

有沒有人有任何關於這個問題的指針?

connect-web-1.0.0-SNAPSHOT.war中接縫庫中的接縫過濾器類正試圖引用connect-domain-1.0.0-SNAPSHOT.jar中的EJB接口類。

我們的耳朵結構:

META-INF/ 
META-INF/MANIFEST.MF 
lib/ 
bcprov-jdk15-140.jar 
connect-domain-1.0.0-SNAPSHOT.jar 
connect-esb-1.0.0-SNAPSHOT.jar 
connect-soap-1.0.0-SNAPSHOT.war 
connect-web-1.0.0-SNAPSHOT.war 
jboss-seam-2.2.0.GA.jar 
joda-time-1.6.jar 
lib/commons-codec-1.2.jar 
lib/commons-lang-2.1.jar 
lib/connect-core-1.0.0-SNAPSHOT.jar 
lib/jasypt-1.6.jar 
lib/jboss-el-1.0_02.CR4.jar 
lib/log4j-1.2.14.jar 
lib/saxon-9.1.0.8.jar 
lib/saxon-dom-9.1.0.8.jar 
log4j.xml 
META-INF/application.xml 
META-INF/jboss-app.xml 
not-yet-commons-ssl-0.3.9.jar 
opensaml-2.1.0.jar 
openws-1.1.0.jar 
paconnect-ds.xml 
paconnectDeploy.sh 
velocity-1.5.jar 
xmltooling-1.0.1.jar 
META-INF/maven/ 
META-INF/maven/pa.connect/ 
META-INF/maven/pa.connect/connect-ear/ 
META-INF/maven/pa.connect/connect-ear/pom.xml 
META-INF/maven/pa.connect/connect-ear/pom.properties 

我們的堆棧跟蹤:

java.lang.ClassNotFoundException: pa.connect.domain.ConnectDomainService 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:247) 
    at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:292) 
    at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1119) 
    at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:798) 
    at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:441) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:247) 
    at java.io.ObjectInputStream.resolveProxyClass(ObjectInputStream.java:675) 
    at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1530) 
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1492) 
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) 
    at java.util.HashMap.readObject(HashMap.java:1030) 
    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:597) 
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) 
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) 
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) 
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) 
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) 
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) 
    at com.sun.faces.renderkit.ResponseStateManagerImpl.getTreeStructureToRestore(ResponseStateManagerImpl.java:200) 
    at javax.faces.render.ResponseStateManager.getState(ResponseStateManager.java:226) 
    at org.ajax4jsf.application.AjaxStateManager.restoreView(AjaxStateManager.java:419) 
    at com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:311) 
    at org.jboss.seam.jsf.SeamViewHandler.restoreView(SeamViewHandler.java:93) 
    at com.sun.facelets.FaceletViewHandler.restoreView(FaceletViewHandler.java:316) 
    at org.ajax4jsf.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:107) 
    at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:179) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:102) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) 
    at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) 
    at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
    at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:86) 
    at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
    at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) 
    at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
    at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) 
    at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) 
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) 
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368) 
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495) 
    at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) 
    at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
    at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) 
    at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
    at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) 
    at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
    at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) 
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    at java.lang.Thread.run(Thread.java:680) 
15:13:25,442 SEVERE [lifecycle] JSF1054: (Phase ID: RESTORE_VIEW 1, View ID:) Exception thrown during phase execution: javax.faces.event.PhaseEvent[[email protected]] 

回答

0

通過製造類加載器存儲庫,戰爭和耳份額固定這一點。並改變了我的耳朵,以包含以前由JBoss提供的JSF庫。