Beste mensen,
De laatste tijd heb ik hier al de nodige topics gepost met meestal weinig tot geen reactie... waarschijnlijk doordat er op dit gebied nog maar weinig kennis is....
Mijn probleem is dat ik een test CMP (Entity Bean met Container Managed Persistence) probeer te maken en als database SQL Server probeer te koppelen aan JBoss. Hiervoor heb ik in JBoss_Home\server\default\conf een bestandje jboss.jcml aangemaakt, met hierin de volgende code:
JBoss.jcml
Wanneer ik mijn CMP probeer te deployen krijg ik onderstaande fout:
JBoss doet het overigens verder wel goed in combinatie met Eclipse en een plugin (Lomboz van www.objectlearn.com). Zo heb ik al een Session Bean kunnen deployen en testen zonder problemen. Ik blijf dus kennelijk hangen op de database instellingen.
Hiervoor zou je ook nog bepaalde zaken moeten wijzigen in de ejb-generate.xml, die ziet er bij mij als volgt uit:
ejb-generate.xml
Snapt iemand waardoor ik deze fout krijg? 
De laatste tijd heb ik hier al de nodige topics gepost met meestal weinig tot geen reactie... waarschijnlijk doordat er op dit gebied nog maar weinig kennis is....
Mijn probleem is dat ik een test CMP (Entity Bean met Container Managed Persistence) probeer te maken en als database SQL Server probeer te koppelen aan JBoss. Hiervoor heb ik in JBoss_Home\server\default\conf een bestandje jboss.jcml aangemaakt, met hierin de volgende code:
JBoss.jcml
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
| <mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
<attribute name="Drivers">com.microsoft.jdbc.sqlserver.SQLServerDriver</attribute>
</mbean>
<mbean code="org.jboss.jdbc.XADataSourceLoader"
name="DefaultDomain:service=XADataSource,name=DefaultDS">
<attribute name="SqlServerPool"></attribute>
<attribute name="DataSourceClass">org.jboss.pool.jdbc.xa.wrapper.XADataSourceImpl</attribute>
<attribute name="Properties"></attribute>
<attribute name="URL">jdbc:microsoft:sqlserver://localhost:1226;databasename=DefaultDS;SelectMethod=cursor
</attribute>
<attribute name="GCMinIdleTime">1200000</attribute>
<attribute name="JDBCUser">sa</attribute>
<attribute name="MaxSize">10</attribute>
<attribute name="Password"> </attribute>
<attribute name="GCEnabled">false</attribute>
<attribute name="InvalidateOnError">false</attribute>
<attribute name="TimestampUsed">false</attribute>
<attribute name="Blocking">true</attribute>
<attribute name="GCInterval">120000</attribute>
<attribute name="Idle Timeout">1800000</attribute>
<attribute name="Idle TimeoutEnabled">false</attribute>
<attribute name="LoggingEnabled">false</attribute>
<attribute name="MaxIdleTimeoutPercent">1.0</attribute>
<attribute name="MinSize">0</attribute>
</mbean> |
Wanneer ik mijn CMP probeer te deployen krijg ik onderstaande fout:
09:51:21,906 ERROR [URLDeploymentScanner] MBeanException: Exception in MBean operation 'checkIncompleteDeployments()'
Cause: Incomplete Deployment listing:
Packages waiting for a deployer:
<none>
Incompletely deployed packages:
<none>
MBeans waiting for classes:
<none>
MBeans waiting for other MBeans:
[ObjectName: jboss.j2ee:jndiName=AddressBean,service=EJB
state: FAILED
I Depend On:
Depends On Me: org.jboss.deployment.DeploymentException: Error while creating table; - nested throwable: (java.sql.SQLException: Wrong data type: TEXT in statement [CREATE TABLE ADDRESS (name TEXT NOT NULL, phone TEXT, CONSTRAINT PK_ADDRESS PRIMARY KEY (name))])]
JBoss doet het overigens verder wel goed in combinatie met Eclipse en een plugin (Lomboz van www.objectlearn.com). Zo heb ik al een Session Bean kunnen deployen en testen zonder problemen. Ik blijf dus kennelijk hangen op de database instellingen.
Hiervoor zou je ook nog bepaalde zaken moeten wijzigen in de ejb-generate.xml, die ziet er bij mij als volgt uit:
ejb-generate.xml
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
| <?xml version="1.0"?>
<project name="Test" default="ejbdoclet" basedir=".">
<!-- Init -->
<target name="init">
<property name="bin.dir" value="../bin" />
<property name="ejb.dd.dir" value="META-INF"/>
<property name="web.dd.dir" value="WEB-INF"/>
<property name="xdoclet.force" value="true"/>
<property name="container.type" value="ejb-jar"/>
<!-- Set up java.class.path -->
<path id="project.class.path">
<pathelement location="${bin.dir}" />
<fileset dir="${eclipse.home}/plugins">
<include name="**/ant.jar"/>
<include name="**/log4j.jar"/>
<include name="**/xdoclet/*.jar"/>
<include name="**/jakarta/*.jar"/>
<include name="**/xercesImpl.jar"/>
<include name="**/xmlParserAPIs.jar"/>
</fileset>
<!-- append the external classpath lastly -->
<pathelement path="${java.class.path}" />
<!-- append the path sent through eclipse to classpath -->
<pathelement path="${pcpath}" />
</path>
</target>
<!-- Run EJBDoclet -->
<target name="ejbdoclet" depends="init">
<taskdef name="ejbdoclet" classname="xdoclet.ejb.EjbDocletTask">
<classpath refid="project.class.path"/>
</taskdef>
<echo message="classpath : ${pcpath}" />
<echo message="beans : ${beans}" />
<ejbdoclet
destdir="${ejbsrc.dir}"
mergedir="${ejb.dd.dir}"
excludedtags="@version,@author,@todo"
addedtags="@lomboz generated"
ejbspec="2.0"
force="${xdoclet.force}"
verbose="true" >
<fileset dir="../src" defaultexcludes="yes">
<patternset includesfile="META-INF/ejbs.xml" />
</fileset>
<dataobject/>
<valueobject/>
<utilobject cacheHomes="true" includeGUID="true"/>
<remoteinterface/>
<localinterface/>
<homeinterface />
<localhomeinterface/>
<entitypk/>
<entitycmp/>
<entitybmp/>
<session/>
<deploymentdescriptor
destdir="${ejb.dd.dir}"
validatexml="false"
mergedir="${ejb.dd.dir}"
/>
<!--
Have struts form objects generated based on entity beans'
data objects. Will require struts.jar to compile. -->
<strutsform />
<!--
Have a mapping.xml file generated for castor classes.
-->
<castormapping destdir="${ejb.dd.dir}" validatexml="false" />
<!-- -->
<jboss
version="3.0"
unauthenticatedPrincipal="nobody"
xmlencoding="UTF-8"
destdir="${ejb.dd.dir}"
validatexml="false"
datasource="java:/DefaultDS"
datasourcemapping="PostgreSQL"
/>
</ejbdoclet>
</target>
<!-- Create EJB-JAR file -->
<target name="ejb-jar" depends="init">
<delete file="${container}.jar" />
<jar jarfile="${container}.jar">
<fileset dir="${bin.dir}">
<include name="**/*.*"/>
</fileset>
<fileset dir=".">
<include name="META-INF/**/*.*"/>
<exclude name="META-INF/beans.xml"/>
<exclude name="META-INF/build.xml"/>
<exclude name="META-INF/build.properties"/>
<exclude name="META-INF/ejbs.xml"/>
<exclude name="META-INF/ejbGenerate.xml"/>
<exclude name="META-INF/servers.xml"/>
</fileset>
</jar>
</target>
<target name="weblogic-ejb-jar" depends="ejb-jar">
<java classname="weblogic.ejbc20" fork="true">
<arg value="${container}.jar"/>
<arg value="${container}Compiled.jar"/>
</java>
</target>
<!-- Deploy to ... -->
<target name="deploy" depends="ejb-jar">
<copy todir="${deploy.dir}">
<fileset dir="." includes="${container}.jar"/>
</copy>
</target>
</project> |
edit:
BTW ik heb de bestanden van de jdbc connectie van de driver van SQL Server geplaatst in de map Jboss_Home\lib\ext. (de bestanden zijn: msbase.jar / mssqlserver.jar / msutil.jar)
BTW ik heb de bestanden van de jdbc connectie van de driver van SQL Server geplaatst in de map Jboss_Home\lib\ext. (de bestanden zijn: msbase.jar / mssqlserver.jar / msutil.jar)
[ Voor 19% gewijzigd door Verwijderd op 28-04-2003 10:12 ]