Bonjour à tous, je construit actuellement une petite application JEE de test sous JBoss 4.2, qui nécessite des composant EJB et SAR dans une même EAR.
J'ai donc développé le composant sar (très simple) et dont voici le code:
interface du Composant sar
Implémentation du composant sar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 /** * */ package com.yashiro.test.jboss.jmx; import org.jboss.system.ServiceMBean; /** * Interface du service * @author Jean-Jacques * @version 1.0 */ public interface StarterServiceMBean extends ServiceMBean { /** * Mise en place de l'attribut 1 * @param value_1 Valeur 1 */ public void setAttribute_1(Integer value_1); /** * Mise en place de l'attribut 2 * @param value_2 Valeur 2 */ public void setAttribute_2(Integer value_2); }
Ensuite j'empaquête le composant dans une archive sar.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 /** * */ package com.yashiro.test.jboss.jmx; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jboss.system.ServiceMBeanSupport; /** * Implementation du service * @author Jean-Jacques * @version 1.0 */ public class StarterService extends ServiceMBeanSupport implements StarterServiceMBean { /** * Logger */ private static Log logger = LogFactory.getLog(StarterService.class); /** * Constructeur */ public StarterService() {} @Override public void start() throws Exception { // Un Log logger.info("StarterService#ctor --- Start"); } @Override public void stop() { // Un Log logger.info("StarterService#ctor --- Stop"); } /* (non-Javadoc) * @see org.jboss.system.Service#create() */ @Override public void create() throws Exception { // Un Log logger.info("StarterService#ctor --- Create"); } /* (non-Javadoc) * @see org.jboss.system.Service#destroy() */ @Override public void destroy() { // Un Log logger.info("StarterService#ctor --- Destroy"); } @Override public void setAttribute_1(Integer value_1) { // Un Log logger.info("StarterService#ctor --- setAttribute_1"); } @Override public void setAttribute_2(Integer value_2) { // Un Log logger.info("StarterService#ctor --- setAttribute_2"); } }
Le problème que je rencontre est le suivant:
Lorsque je déploie l'archive toute seule (le .sar dans le répertoire deploy), le composant est bien déployé.
Mais lorsque je le référence dans l'EAR (dans jboss-app.xml, tout en l'ajoutant comme module), le déploiement me génère l'erreur suivante:
Je suis tout à fait dépassé du fait de l'incompréhension de l'exception. Si quelqu'un a déja pu résoudre un pareil problème!!!!! Prière de m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 08:58:14,609 ERROR [MainDeployer] Could not create deployment: file:/I:/Developpements/JBossJFreeSX/server/default/tmp/deploy/tmp2904342672213488024AccountingEngine-Detector-Test.ear-contents/Intro-JBoss-JMX-01.sar org.jboss.deployment.DeploymentException: Class does not expose a management interface: java.lang.Object; - nested throwable: (javax.management.NotCompliantMBeanException: Class does not expose a management interface: java.lang.Object) at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:196) at org.jboss.system.ServiceController.install(ServiceController.java:226) at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) at $Proxy4.install(Unknown Source) at org.jboss.deployment.SARDeployer.create(SARDeployer.java:249) at org.jboss.deployment.MainDeployer.create(MainDeployer.java:969) at org.jboss.deployment.MainDeployer.create(MainDeployer.java:959) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:818) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) at $Proxy9.deploy(Unknown Source) at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225) Caused by: javax.management.NotCompliantMBeanException: Class does not expose a management interface: java.lang.Object at org.jboss.mx.metadata.MBeanCapability.of(MBeanCapability.java:102) at org.jboss.mx.metadata.MBeanCapability.of(MBeanCapability.java:100) at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:182) at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.server.MBeanServerImpl$3.run(MBeanServerImpl.java:1422) at java.security.AccessController.doPrivileged(Native Method) at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1417) at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1350) at org.jboss.mx.server.MBeanServerImpl.createMBean(MBeanServerImpl.java:345) at org.jboss.system.ServiceCreator.install(ServiceCreator.java:157) at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigurator.java:449) at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:171) ... 34 more
Partager