-
1. Re: Undesirable class interaction between EARs
flarosa Jan 30, 2006 5:11 PM (in response to flarosa)I tried what it says in this Wiki page;
http://www.jboss.org/wiki/Wiki.jsp?page=ClassLoadingConfiguration
However, this utterly fails; my entire JBoss server explodes with a mass of stack traces when I add this stuff to my xml file.
If someone can show me a concrete example of how to configure a project to have isolated classloading, I would appreciate it.
Why is isolated classloading not the default behavior? It seems very counter to the spirit of an EAR file that two otherwise unrelated applications could end up interacting with one another. -
2. Re: Undesirable class interaction between EARs
starksm64 Jan 30, 2006 5:57 PM (in response to flarosa)Set Isolated to true in deploy/ear-deployer.xml
<!-- EAR deployer, remove if you are not using Web layers --> <mbean code="org.jboss.deployment.EARDeployer" name="jboss.j2ee:service=EARDeployer"> <!-- Isolate all ears in their own classloader space --> <attribute name="Isolated">true</attribute> <!-- Enforce call by value to all remote interfaces --> <attribute name="CallByValue">true</attribute> </mbean>
-
3. Re: Undesirable class interaction between EARs
flarosa Jan 31, 2006 1:12 AM (in response to flarosa)Thanks,
I tried that, but my application will not start. The problem seems to occur as JBoss is instantiating my data source.
00:02:55,869 INFO [ServiceConfigurator] Problem configuring service jboss.jca:service=ManagedConnectionFactory,name=ArticlesDB
org.jboss.deployment.DeploymentException: Exception setting attribute javax.management.Attribute@1f88953 on mbean jboss.jca:service=ManagedConnectionFactory,name=ArticlesDB; - nested throwable: (javax.management.InvalidAttributeValueException: Set attribute has class class javax.management.ObjectName loaded from null
that is not assignable to attribute class class javax.management.ObjectName loaded from org.jboss.mx.loading.UnifiedClassLoader3@9b04ac{ url=file:/P:/jboss-4.0.
2/server/default/deploy/ezoffice.ear/ ,addedOrder=40})
at org.jboss.system.ServiceConfigurator.setAttribute(ServiceConfigurator
.java:573)
at org.jboss.system.ServiceConfigurator.configure(ServiceConfigurator.ja
va:323)
at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigura
tor.java:164)
at org.jboss.system.ServiceConfigurator.processDependency(ServiceConfigu
rator.java:536)
at org.jboss.system.ServiceConfigurator.configure(ServiceConfigurator.ja
va:300)
at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigura
tor.java:164)
at org.jboss.system.ServiceConfigurator.processDependency(ServiceConfigu
rator.java:536)
at org.jboss.system.ServiceConfigurator.configure(ServiceConfigurator.ja
va:300)
at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigura
tor.java:164)
at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java
:118)
at org.jboss.system.ServiceController.install(ServiceController.java:202
)
at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
at $Proxy4.install(Unknown Source)
at org.jboss.deployment.SARDeployer.create(SARDeployer.java:220)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept
or.java:121)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM
BeanOperationInterceptor.java:127)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.mx.util.JMXInvocationHandler.invoke(JMXInvocationHandler.ja
va:273)
at $Proxy35.create(Unknown Source)
at org.jboss.deployment.XSLSubDeployer.create(XSLSubDeployer.java:224)
at org.jboss.deployment.MainDeployer.create(MainDeployer.java:918)
at org.jboss.deployment.MainDeployer.create(MainDeployer.java:910)
at org.jboss.deployment.MainDeployer.create(MainDeployer.java:910)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:774)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:738)
at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept
or.java:121)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM
BeanOperationInterceptor.java:127)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
at $Proxy8.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymen
tScanner.java:325)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentS
canner.java:501)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
doScan(AbstractDeploymentScanner.java:204)
at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(A
bstractDeploymentScanner.java:277)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanS
upport.java:272)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMB
eanSupport.java:222)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceControl
ler.java:897)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:418)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
at $Proxy4.start(Unknown Source)
at org.jboss.deployment.SARDeployer.start(SARDeployer.java:273)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:964)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:775)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:738)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:722)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept
or.java:121)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM
BeanOperationInterceptor.java:127)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
at $Proxy5.deploy(Unknown Source)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:434)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:315)
at org.jboss.Main.boot(Main.java:195)
at org.jboss.Main$1.run(Main.java:463)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.management.InvalidAttributeValueException: Set attribute has c
lass class javax.management.ObjectName loaded from null that is not assignable t
o attribute class class javax.management.ObjectName loaded from org.jboss.mx.loa
ding.UnifiedClassLoader3@9b04ac{ url=file:/P:/jboss-4.0.2/server/default/deploy/
ezoffice.ear/ ,addedOrder=40}
at org.jboss.mx.interceptor.ModelMBeanAttributeInterceptor.checkAssignab
le(ModelMBeanAttributeInterceptor.java:214)
at org.jboss.mx.interceptor.ModelMBeanAttributeInterceptor.invoke(ModelM
BeanAttributeInterceptor.java:73)
at org.jboss.mx.interceptor.PersistenceInterceptor.invoke(PersistenceInt
erceptor.java:61)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.setAttribute(AbstractMBeanIn
voker.java:446)
at org.jboss.mx.server.MBeanServerImpl.setAttribute(MBeanServerImpl.java
:593)
at org.jboss.system.ServiceConfigurator.setAttribute(ServiceConfigurator
.java:569)
... 105 more -
4. Re: Undesirable class interaction between EARs
flarosa Jan 31, 2006 2:11 AM (in response to flarosa)I rearranged my deployment a bit and solved the datasource error, but now my EJBs fail to deploy with a similar problem. I suspect that I'm not deploying my classes correctly.
My EAR consists of three common jars - two ejb jars - and a war. I declared everything in application.xml as either a "java" module, an "ejb" module or a "web" module.
I'm operating under the assumption that the ejb and web modules ought to be able to access all the classes in the java modules - is this correct assuming an isolated deployment strategy? If not, would packaging copies of all the common jars into each EJB and WAR be the recommended approach? I had thought that it was possible to share these classes even with a strict classloader.