I have
| public class EarJaccPolicy extends JaccPolicy<JBossAppMetaData>
| {
| public EarJaccPolicy(String id)
| {
| super(id);
| }
|
|
| public EarJaccPolicy(String id, JBossAppMetaData metaData, Boolean
standaloneDeployment)
| {
| super(id, metaData, standaloneDeployment);
| }
| }
|
When there is an ear with ejb3 deployment, the ServiceCreator (internally the MBeanServer)
is choking with:
| Caused by: java.lang.NoSuchMethodException:
org.jboss.deployment.security.EarJaccPolicy.<init>(java.lang.String,
org.jboss.metadata.ear.jboss.JBoss50AppMetaData, java.lan
| g.Boolean)
| at java.lang.Class.getConstructor0(Class.java:2647)
| at java.lang.Class.getConstructor(Class.java:1629)
| at org.jboss.mx.server.MBeanServerImpl.instantiate(MBeanServerImpl.java:1241)
| at org.jboss.mx.server.MBeanServerImpl.instantiate(MBeanServerImpl.java:286)
| at org.jboss.mx.server.MBeanServerImpl.createMBean(MBeanServerImpl.java:344)
| at org.jboss.system.ServiceCreator.installPlainMBean(ServiceCreator.java:197)
| at org.jboss.system.ServiceCreator.install(ServiceCreator.java:115)
| ... 84 more
|
The ServiceConstructorMetaData is as follows:
| ServiceConstructorMetaData serviceConstructor = new ServiceConstructorMetaData();
| serviceConstructor.setSignature(new String[] { String.class.getName(),
| metaData.getClass().getName(),Boolean.class.getName()});
| serviceConstructor.setParameters(new Object[] {contextId,deployment,
Boolean.TRUE});
| createJaccPolicyBean(serviceConstructor, unit);
|
| where metadata is JBossAppMetaData instance. (I Think this is where I need to ensure
that JBossAppMetaData is passed)
|
A fix is to add a ctr with JBoss50AppMetaData to EarJaccPolicy. But it seems too much to
add ctrs with JBoss60AppMetaData, JBoss70AppMetaData..... It probably is simple
reflection semantics.
I think the fix is in the ServiceConstructorMetaData......
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4131418#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...