Ik heb een probleem deployment van een bean op JBoss 3.2.4. Ik krijg een DeploymentException met de melding "Parameter class not found: Long". Ik heb alle beans en deployment descriptors nagekegen nagekeken en ik heb wel degelijk "java.lang.Long" gebruikt.
Ik vermoed dat de container niet weet naar welk JDBC-type de klasse Long gemapt moet worden. Google leverde niets op. Mischien staar ik me gewoon blind op iets wat heel simpel is.... Alle suggesties zeer gewaardeerd!
Onderstaande code is de code voor de entity bean. Ik gebruik XDoclet om CMP-klasse, interfaces en deployment descriptors te genereren.
ejb-jar.xml deployement descriptor
jboss.xml deployement descriptor
jbosscmp-jdbc.xml deployment descriptor
stacktrace
Ik vermoed dat de container niet weet naar welk JDBC-type de klasse Long gemapt moet worden. Google leverde niets op. Mischien staar ik me gewoon blind op iets wat heel simpel is.... Alle suggesties zeer gewaardeerd!
Onderstaande code is de code voor de entity bean. Ik gebruik XDoclet om CMP-klasse, interfaces en deployment descriptors te genereren.
Java:
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
| package rip.ejb.beans; import javax.ejb.EntityBean; /** * @ejb.bean * name="Media" * description="Represents a media type in the collection" * display-name="Media" * type="CMP" * cmp-version="2.x" * view-type="local" * local-jndi-name="gamecol/Media" * schema="media" * primkey-field="ID" * * @ejb.pk * class="java.lang.Long" * * @ejb.transaction * type="Required" * * @ejb.finder * signature="MediaLocal findByPrimaryKey(java.lang.Long id)" * query="SELECT OBJECT(m) FROM media WHERE m.ID=?1" * * @ejb.finder * signature="java.util.Collection findAll()" * query="SELECT OBJECT(m) FROM media AS m" * * @ejb.finder * signature="java.util.Collection findAllByLanguage(java.lang.String language)" * query="SELECT OBJECT(m) FROM media WHERE m.LANG=?1" * * @ejb.persistence * table-name="MEDIA" * * @jboss.persistence * datasource="java:/gamecolDS" * datasource-mapping="mySQL" * create-table="false" * remove-table="false" * table-name="MEDIA" * * @jboss.entity-command * name="mysql-get-generated-keys" */ public abstract class MediaBean implements EntityBean { /** * Gets the row id of the media * * @ejb.pk-field * @ejb.persistence * column-name="ID" * @ejb.value-object * match="*" * @return the id */ public abstract Long getID(); /** * @ejb.interface-method */ public abstract void setID(Long id); /** * @ejb.interface-method * @ejb.persistence * column-name="LANG" * @return the language */ public abstract String getLanguage(); /** * @ejb.interface-method * @ejb.persistence * column-name="LANG" * @param language the language */ public abstract void setLanguage(String language); /** * @ejb.interface-method * @ejb.persistence * column-name="TEXT" * @return the media */ public abstract String getMedia(); /** * @ejb.interface-method * @ejb.persistence * column-name="TEXT" * @param media the media */ public abstract void setMedia(String media); /** * @ejb.interface-method * @ejb.persistence * column-name="COUNT" * @return the count */ public abstract Long getCount(); /** * @ejb.interface-method * @ejb.persistence * column-name="COUNT" * @param count */ public abstract void setCount(Long count); /** * @ejb.interface-method * @ejb.persistence * column-name="SIZE" * @return the size */ public abstract String getSize(); /** * @ejb.interface-method * @ejb.persistence * column-name="SIZE" * @param size the size */ public abstract void setSize(String size); } |
ejb-jar.xml deployement descriptor
XML:
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
84
85
86
87
88
89
90
91
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> <ejb-jar > <description><![CDATA[No Description.]]></description> <display-name>Generated by XDoclet</display-name> <enterprise-beans> <!-- Entity Beans --> <entity > <description><![CDATA[Represents a media type in the game collection]]></description> <display-name>Media</display-name> <ejb-name>Media</ejb-name> <local-home>rip.ejb.beans.MediaLocalHome</local-home> <local>rip.ejb.beans.MediaLocal</local> <ejb-class>rip.ejb.beans.MediaCMP</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>java.lang.Long</prim-key-class> <reentrant>False</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>media</abstract-schema-name> <cmp-field > <description><![CDATA[Gets the row id of the media]]></description> <field-name>ID</field-name> </cmp-field> <cmp-field > <description><![CDATA[]]></description> <field-name>language</field-name> </cmp-field> <cmp-field > <description><![CDATA[]]></description> <field-name>media</field-name> </cmp-field> <cmp-field > <description><![CDATA[]]></description> <field-name>count</field-name> </cmp-field> <cmp-field > <description><![CDATA[]]></description> <field-name>size</field-name> </cmp-field> <primkey-field>ID</primkey-field> <query> <query-method> <method-name>findByPrimaryKey</method-name> <method-params> <method-param>java.lang.Long</method-param> </method-params> </query-method> <ejb-ql><![CDATA[SELECT OBJECT(m) FROM media WHERE m.ID=?1]]></ejb-ql> </query> <query> <query-method> <method-name>findAll</method-name> <method-params> </method-params> </query-method> <ejb-ql><![CDATA[SELECT OBJECT(m) FROM media AS m]]></ejb-ql> </query> <query> <query-method> <method-name>findAllByLanguage</method-name> <method-params> <method-param>java.lang.String</method-param> </method-params> </query-method> <ejb-ql><![CDATA[SELECT OBJECT(m) FROM media WHERE m.LANG=?1]]></ejb-ql> </query> <!-- Write a file named ejb-finders-MediaBean.xml if you want to define extra finders. --> </entity> </enterprise-beans> <!-- Assembly Descriptor --> <assembly-descriptor > <container-transaction > <method > <ejb-name>Media</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> |
jboss.xml deployement descriptor
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 3.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd"> <jboss> <enterprise-beans> <!-- To add beans that you have deployment descriptor info for, add a file to your XDoclet merge directory called jboss-beans.xml that contains the <session></session>, <entity></entity> and <message-driven></message-driven> markup for those beans. --> <entity> <ejb-name>Media</ejb-name> <local-jndi-name>gamecol/Media</local-jndi-name> </entity> <resource-managers> </resource-managers> </jboss> |
jbosscmp-jdbc.xml deployment descriptor
XML:
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
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN" "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd"> <jbosscmp-jdbc> <defaults> <datasource>java:/gamecolDS</datasource> <datasource-mapping>mySQL</datasource-mapping> <preferred-relation-mapping>relation-table</preferred-relation-mapping> </defaults> <enterprise-beans> <entity> <ejb-name>Media</ejb-name> <datasource>java:/gamecolDS</datasource> <datasource-mapping>mySQL</datasource-mapping> <create-table>false</create-table> <remove-table>false</remove-table> <table-name>MEDIA</table-name> <cmp-field> <field-name>ID</field-name> <column-name>ID</column-name> </cmp-field> <cmp-field> <field-name>language</field-name> <column-name>LANG</column-name> </cmp-field> <cmp-field> <field-name>media</field-name> <column-name>TEXT</column-name> </cmp-field> <cmp-field> <field-name>count</field-name> <column-name>COUNT</column-name> </cmp-field> <cmp-field> <field-name>size</field-name> <column-name>SIZE</column-name> </cmp-field> </entity> </enterprise-beans> </jbosscmp-jdbc> |
stacktrace
code:
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
| 2004-08-28 13:11:27,765 ERROR [org.jboss.ejb.EntityContainer] Starting failed jboss.j2ee:jndiName=gamecol/Media,service=EJB
org.jboss.deployment.DeploymentException: Parameter class not found: Long
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCQueryMetaDataFactory.getQueryMethods(JDBCQueryMetaDataFactory.java:265)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCQueryMetaDataFactory.createJDBCQueryMetaData(JDBCQueryMetaDataFactory.java:47)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCEntityMetaData.<init>(JDBCEntityMetaData.java:400)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.<init>(JDBCApplicationMetaData.java:140)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:52)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadJDBCEntityMetaData(JDBCStoreManager.java:705)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.initStoreManager(JDBCStoreManager.java:417)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.start(JDBCStoreManager.java:365)
at org.jboss.ejb.plugins.CMPPersistenceManager.start(CMPPersistenceManager.java:147)
at org.jboss.ejb.EntityContainer.startService(EntityContainer.java:337)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:271)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:221)
at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:837)
at $Proxy17.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:367)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
at $Proxy37.start(Unknown Source)
at org.jboss.ejb.EjbModule.startService(EjbModule.java:367)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:271)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:221)
at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:837)
at $Proxy17.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:367)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
at $Proxy14.start(Unknown Source)
at org.jboss.ejb.EJBDeployer.start(EJBDeployer.java:570)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:836)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:645)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:608)
at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
at $Proxy7.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:304)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:478)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:201)
at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:274)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:271)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:221)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:837)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:367)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
at $Proxy4.start(Unknown Source)
at org.jboss.deployment.SARDeployer.start(SARDeployer.java:251)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:836)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:645)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:608)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:592)
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:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
at $Proxy5.deploy(Unknown Source)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:407)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:311)
at org.jboss.Main.boot(Main.java:144)
at org.jboss.Main$1.run(Main.java:389)
at java.lang.Thread.run(Thread.java:534) |
[ Voor 9% gewijzigd door ari3 op 28-08-2004 14:22 ]
"Kill one man, and you are a murderer. Kill millions of men, and you are a conqueror. Kill them all, and you are a god." -- Jean Rostand