Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[EJB] Datasource Problem auf JBoss

8 views
Skip to first unread message

Sven Kiesewetter

unread,
Jan 23, 2004, 5:19:53 AM1/23/04
to
Hi zusammen,

es ist echt mal wieder zum Haareausraufen: ich hab laufend Probs mit der
Datasource und zwar wird sie einfach nicht gefunden, obwohl JBoss sie
kennen sollte:

Im jboss log steht folgendes:

2004-01-23 11:04:19,035 INFO [org.jboss.deployment.MainDeployer]
Starting deployment of package:
file:/D:/jboss/server/default/deploy/customersite-ds.xml
2004-01-23 11:04:19,445 INFO
[org.jboss.resource.connectionmanager.RARDeployment] Started
jboss.jca:service=ManagedConnectionFactory,name=CustomerSite
2004-01-23 11:04:19,465 INFO
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
Started jboss.jca:service=ManagedConnectionPool,name=CustomerSite
2004-01-23 11:04:19,546 INFO [org.jboss.deployment.MainDeployer]
Deployed package: file:/D:/jboss/server/default/deploy/customersite-ds.xml

Und bei deployen meiner app kommt dann:


2004-01-23 11:04:46,954 INFO [org.jboss.ejb.EjbModule] Deploying
SequenceEntity
2004-01-23 11:04:47,465 INFO [org.jboss.ejb.EjbModule] Deploying User
2004-01-23 11:04:47,615 INFO [org.jboss.ejb.EjbModule] Deploying Country
2004-01-23 11:04:47,635 INFO [org.jboss.ejb.EjbModule] Deploying
SequenceService
2004-01-23 11:04:47,715 INFO [org.jboss.ejb.EjbModule] Deploying Manager
2004-01-23 11:04:48,887 ERROR [org.jboss.ejb.EntityContainer] Starting
failed
org.jboss.deployment.DeploymentException: Error in jbosscmp-jdbc.xml :
datasource-mapping CustomerSite not found
at
org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCEntityMetaData.<init>(JDBCEntityMetaData.java:433)
at
org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.<init>(JDBCApplicationMetaData.java:311)
at
org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:75)
at
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadJDBCEntityMetaData(JDBCStoreManager.java:706)
at
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.initStoreManager(JDBCStoreManager.java:409)
at
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.start(JDBCStoreManager.java:357)
at
org.jboss.ejb.plugins.CMPPersistenceManager.start(CMPPersistenceManager.java:152)


Ich frag mich wie das sein kann. Gestern ging das übrigens mal, nachdem
es etliche Male nicht funktionieren wollte. Seit dem hab ich aber nichts
am Code oder den Descriptors verändert.

Sven

Marek Lange

unread,
Jan 23, 2004, 6:03:34 AM1/23/04
to
Sven Kiesewetter wrote:

Hast du evtl. auch für das Mapping in jbosscmp-jdbc.xml den JNDI-Namen
eingetragen und nicht die Datenbank-Bezeichnung (also z.B. 'Oracle8' etc.)?

-marek

Sven Kiesewetter

unread,
Jan 23, 2004, 6:05:49 AM1/23/04
to
>
>
> Hast du evtl. auch für das Mapping in jbosscmp-jdbc.xml den JNDI-Namen
> eingetragen und nicht die Datenbank-Bezeichnung (also z.B. 'Oracle8' etc.)?
>
> -marek
>

Dort steht:

<defaults>
<datasource>java:/CustomerSite</datasource>
<datasource-mapping>CustomerSite</datasource-mapping>
<preferred-relation-mapping>relation-table</preferred-relation-mapping>
</defaults>

sollte also gehen

Sven

Marek Lange

unread,
Jan 23, 2004, 6:17:24 AM1/23/04
to
Sven Kiesewetter wrote:

>>
>>
>> Hast du evtl. auch für das Mapping in jbosscmp-jdbc.xml den JNDI-Namen
>> eingetragen und nicht die Datenbank-Bezeichnung (also z.B. 'Oracle8'
>> etc.)?
>>
>> -marek
>>
>
> Dort steht:
>
> <defaults>
> <datasource>java:/CustomerSite</datasource>
> <datasource-mapping>CustomerSite</datasource-mapping>

Du hast aber auch ein eigenes DB-Mapping erstellt?

<type-mapping>
<name>CustomerSite</name>
....

Der Container versucht hier, ein Mapping namens "CustomerSite" zu
finden. Wenn du das nicht getan hast, musst du ein mitgeliefertes
Mapping nehmen (siehe standardjbosscmp-jdbc.xml).

-marek

Sven Kiesewetter

unread,
Jan 23, 2004, 6:52:37 AM1/23/04
to

>
> Du hast aber auch ein eigenes DB-Mapping erstellt?
>
> <type-mapping>
> <name>CustomerSite</name>
> ....
>
> Der Container versucht hier, ein Mapping namens "CustomerSite" zu
> finden. Wenn du das nicht getan hast, musst du ein mitgeliefertes
> Mapping nehmen (siehe standardjbosscmp-jdbc.xml).
>
> -marek
>

Davon hör ich jetzt zum 1. Mal. Kannst du mir bitte was dazu erzählen ?

Sven

Marek Lange

unread,
Jan 23, 2004, 7:15:16 AM1/23/04
to
Sven Kiesewetter wrote:
> Davon hör ich jetzt zum 1. Mal. Kannst du mir bitte was dazu erzählen ?

Ich glaube, du machst dir da ein Problem, wo keines ist: trage einfach
das korrekte Datenbankmapping für deine Datenbank da ein. Fertig. Wenn
du am eigentlichen Mapping was ändern willst, kannst du das immer noch
tun. Aber die default-Optionen sind meistens ok.

Beispiel für Oracle 8:
<datasource>java:/CustomerSite</datasource>
<datasource-mapping>Oracle8</datasource-mapping>
...

oder Mysql:
<datasource-mapping>mySQL</datasource-mapping>

Die Namen kannst du aus standardjbosscmp-jdbc.xml entnehmen.

-marek

Jens Kutschke

unread,
Jan 23, 2004, 7:21:14 AM1/23/04
to
> >
>
> Davon hör ich jetzt zum 1. Mal. Kannst du mir bitte was dazu erzählen ?
>

Der JBoss muß doch die Java-Klassen/-Typen auf SQL-Typen mappen. Dazu dient
das. Wenn ich mich recht entsinne bringt der JBoss schon Mappings für die
gängigsten DBM-Systeme mit. Das für Dich passende mußt Du dort angeben oder
eben ein eigenes schreiben.

MfG,
Jens


--
Jens Kutschke
http://www.j-dimension.com

Sven Kiesewetter

unread,
Jan 23, 2004, 7:30:38 AM1/23/04
to
Marek Lange wrote:

Das Problem ist ja, dass auf dem gleichen jboss noch weitere apps laufen
sollen, die aber andere Datasources nutzen. Die DataSources hingehen
sollten vorerst auf das gleichen Datenbanksystem zeigen, aber auf
verschiedene datenbanken

Marek Lange

unread,
Jan 23, 2004, 7:54:23 AM1/23/04
to
Sven Kiesewetter wrote:
> Das Problem ist ja, dass auf dem gleichen jboss noch weitere apps laufen
> sollen, die aber andere Datasources nutzen. Die DataSources hingehen
> sollten vorerst auf das gleichen Datenbanksystem zeigen, aber auf
> verschiedene datenbanken

Ich kann dir nicht folgen. Was hat das mit dem Mapping zu tun? Du musst
dann einfach verschiedene DataSources konfigurieren und diese in den
Applikationen ansprechen. Das, was du da konfigurieren wolltest, ist für
das objektrelationale Mapping gedacht - also wie die Objekte in
Relationen umgesetzt werden.

-marek

Sven Kiesewetter

unread,
Jan 23, 2004, 8:45:55 AM1/23/04
to
Noch mal von vorn:

ich spezifiziere in default/deploy/customersite-ds.xml und
suppliersite-ds.xml meine DataSourcen, die 1. soll eine andere
ConnectionURL specifizeren als die 2. Beiden verwenden aber ein
PostgreSQL-System.
Also müssen die beiden Datasources auf unter verschiedenen JNDI-Names zu
finden sein. Diese Namen tauchen ja dann in der entsprechenden
jboss-jdbc.xml wieder auf ?

Ich nehme mal an, dass ich komplett auf dem Holzweg bin und alles
mögliche durcheinander werfe.

Sven

Marek Lange

unread,
Jan 23, 2004, 9:14:42 AM1/23/04
to
Sven Kiesewetter wrote:

Das hast du schon richtig verstanden. Für beide Datasources stellst du
in deiner jbosscmp-jdbc.xml dann das Mapping für PostgreSQL
("PostgreSQL") ein. Und gut ist.

-marek

Sven Kiesewetter

unread,
Jan 23, 2004, 9:19:15 AM1/23/04
to

>
> Das hast du schon richtig verstanden. Für beide Datasources stellst du
> in deiner jbosscmp-jdbc.xml dann das Mapping für PostgreSQL
> ("PostgreSQL") ein. Und gut ist.
>
> -marek
>

Thx, nun gehts auch. Aber da taucht schon das nächste Problem auf:

15:12:30,761 INFO [Country] Table 'country' already exists
15:12:30,911 ERROR [EntityContainer] Starting failed
org.jboss.deployment.DeploymentException: Error while creating table
user; - nested throwable: (java.sql.SQLException: ERROR: parser: parse
error at or near "user" at character 14)

in der jbosscmp-jdbc.xml steht:

<entity>
<ejb-name>User</ejb-name>
<table-name>User</table-name>

<cmp-field>
<field-name>uuid</field-name>
<column-name>uuid</column-name>
</cmp-field>
.
.
.
</entity>

Sven

Thorsten

unread,
Jan 23, 2004, 11:08:37 AM1/23/04
to
Sven Kiesewetter wrote:
>
> 15:12:30,911 ERROR [EntityContainer] Starting failed
> org.jboss.deployment.DeploymentException: Error while creating table
> user; - nested throwable: (java.sql.SQLException: ERROR: parser: parse
> error at or near "user" at character 14)
>

ist "user" vielleicht ein verbotenes Schlüsselwort als tablename?
nur so als idee....

Thorsten Langer

Sven Kiesewetter

unread,
Jan 23, 2004, 11:25:08 AM1/23/04
to
Thorsten wrote:

Das dachte ich auch, aber ich hatte kurz für das UserBean den
abstract-schema-name UserTab gesetzt, aber das hat auch nicht geholfen.
Dann hab ich mal alle Finder-Methoden rausgenommen, um die
ejb-ql-queries rauszukriegen, aber das hat auch nicht geholfen.

Ich weiss echt nicht mehr weiter. :-(

Sven

Sven Welte

unread,
Jan 23, 2004, 11:49:24 AM1/23/04
to
Sven Kiesewetter <svenkie...@web.de> schrieb:

>Ich weiss echt nicht mehr weiter. :-(
Vorschlag:
Ich nehme mal an, dass es für dich recht hilfreich wäre den SQL-Befehl
im Klartext zu sehen.
Vielleicht hilft ja das:
Howto: http://developer.mimer.com/howto/howto_28.htm
download: http://developer.mimer.se/downloads

Viele Grüße
Sven Welte

0 new messages