You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by satsuma <ka...@hotmail.com> on 2007/10/21 16:49:52 UTC

How to configure a datasource?

Hello,

I'm trying to make simple stateless session bean to connect to PostgreSQL
database. I've read the instructions at this page: 
http://openejb.apache.org/databases.html
http://openejb.apache.org/databases.html 

When I add the <Resource> tag in the openejb.xml file, I can not start the
server anymore.

I get the following exceptions:

org.apache.openejb.OpenEJBException: Unable to read OpenEJB configuration
file at /opt/openejb-3.0-beta-1/conf/openejb.xml: unexpected element
(uri:"http://www.openejb.org/System/Configuration", local:"Resourse").
Expected elements are
<{http://www.openejb.org/System/Configuration}Container>,<{http://www.openejb.org/System/Configuration}ConnectionManager>,<{http://www.openejb.org/System/Configuration}SecurityService>,<{http://www.openejb.org/System/Configuration}ProxyFactory>,<{http://www.openejb.org/System/Configuration}Resource>,<{http://www.openejb.org/System/Configuration}TransactionManager>,<{http://www.openejb.org/System/Configuration}JndiProvider>,<{http://www.openejb.org/System/Configuration}Connector>,<{http://www.openejb.org/System/Configuration}Deployments>
	at
org.apache.openejb.config.sys.JaxbOpenejb.readConfig(JaxbOpenejb.java:129)
	at
org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:207)
	at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:206)
	at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:149)
	at org.apache.openejb.OpenEJB.init(OpenEJB.java:293)
	at org.apache.openejb.server.Server.init(Server.java:63)
	at org.apache.openejb.server.Main.initServer(Main.java:155)
	at org.apache.openejb.server.Main.main(Main.java:128)
	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:585)
	at org.apache.openejb.cli.MainImpl.main(MainImpl.java:151)
	at org.apache.openejb.cli.Bootstrap.main(Bootstrap.java:102)
Caused by: javax.xml.bind.UnmarshalException: unexpected element
(uri:"http://www.openejb.org/System/Configuration", local:"Resourse").
Expected elements are
<{http://www.openejb.org/System/Configuration}Container>,<{http://www.openejb.org/System/Configuration}ConnectionManager>,<{http://www.openejb.org/System/Configuration}SecurityService>,<{http://www.openejb.org/System/Configuration}ProxyFactory>,<{http://www.openejb.org/System/Configuration}Resource>,<{http://www.openejb.org/System/Configuration}TransactionManager>,<{http://www.openejb.org/System/Configuration}JndiProvider>,<{http://www.openejb.org/System/Configuration}Connector>,<{http://www.openejb.org/System/Configuration}Deployments>
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:523)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:199)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:194)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:71)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.Loader.childElement(Loader.java:65)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.childElement(StructureLoader.java:209)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:366)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:347)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:101)
	at org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527)
	at
org.apache.openejb.config.sys.JaxbOpenejb$NamespaceFilter.startElement(JaxbOpenejb.java:256)
	at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533)
	at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:330)
	at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
	at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
	at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
	at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
	at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
	at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
	at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:194)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:167)
	at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:120)
	at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:103)
	at
org.apache.openejb.config.sys.JaxbOpenejb.unmarshal(JaxbOpenejb.java:235)
	at
org.apache.openejb.config.sys.JaxbOpenejb.readConfig(JaxbOpenejb.java:124)
	... 13 more


My openejb.xml looks like this, I have only added the <Resource> tag to the
end. I have not made any other modifications to the default configuration
file.

<openejb>

<Container id="Default CMP Container" ctype="CMP_ENTITY">
# This container can service CMP 1.1 and 2.x Entity Beans
#
# Persistence is achived by taking the entity beans deployed
# and internally readapting them to the new EJB 3.0 JPA (Java
# Persistence API) specification.  It is possible, though
# not well documented, to mix in newer JPA concepts with
# old style Entity beans allowing you to slowly transition
# your entities to JPA.  Aggressively inquiring on the
# users@openejb.apache.org about this feature will help
# us generate better documentation.
# ---------

# ConnectorName is he id of the Connector element which
# should provide connectivity for this CMP Container

    ConnectorName  Default JDBC Database

</Container>


<Container id="Default BMP Container" ctype="BMP_ENTITY">

# Specifies the size of the bean pools for this
# bmp entity container.

    PoolSize 10

</Container>

<Container id="Default Stateful Container" ctype="STATEFUL">
#  The passivator is responsible for writing beans to disk
#  at passivation time. Different passivators can be used
#  by setting this property to the fully qualified class name
#  of the PassivationStrategy implementation. The passivator
#  is not responsible for invoking any callbacks or other
#  processing, its only responsibly is to write the bean state
#  to disk.
#
#  Known implementations:
#     org.apache.openejb.core.stateful.RAFPassivater
#     org.apache.openejb.core.stateful.SimplePassivater

    Passivator   org.apache.openejb.core.stateful.SimplePassivater

#  Specifies the time to wait between invocations. This
#  value is measured in minutes.  A value of 5 would
#  result in a time-out of 5 minutes between invocations.

    TimeOut  20

#  Specifies the size of the bean pools for this
#  stateful SessionBean container.

    PoolSize  500

#  Property name that specifies the number of instances
#  to passivate at one time when doing bulk passivation.
#  Must be less than the PoolSize.

    BulkPassivate  50

</Container>



<Container id="Default Stateless Container" ctype="STATELESS">
#  Specifies the time to wait between invocations. This
#  value is measured in milliseconds.  A value of 5 would
#  result in a time-out of 5 milliseconds between invocations.
#  A value of zero would mean no timeout.

    TimeOut  0

#  Specifies the size of the bean pools for this
#  stateless SessionBean container.

    PoolSize  10

#  StrictPooling tells the container what to do when the pool
#  reaches it's maximum size and there are incoming requests
#  that need instances.
#
#  With strict pooling, requests will have to wait for instances
#  to become available.  The pool size will never grow beyond the
#  the set PoolSize value.
#
#  Without strict pooling, the container will create temporary
#  instances to meet demand.  The instances will last for just one
#  method invocation and then are removed.

    StrictPooling  true

</Container>

<Container id="Default MDB Container" ctype="MESSAGE">
# The resource adapter delivers messages to the container

    ResourceAdapter Default JMS Resource Adapter

# Specifies the activation spec class

    ActivationSpecClass org.apache.activemq.ra.ActiveMQActivationSpec

# Specifies the maximum number of bean instances that are
# allowed to exist for each MDB deployment.

    InstanceLimit 10
</Container>



<!--
# For more examples of database configuration see:
# http://openejb.apache.org/databases.html
-->

<Connector id="Default JDBC Database" >
    JdbcDriver org.hsqldb.jdbcDriver
    JdbcUrl jdbc:hsqldb:file:hsqldb
    UserName sa
    Password
</Connector>

<Connector id="Default Unmanaged JDBC Database">
    JdbcDriver org.hsqldb.jdbcDriver
    JdbcUrl jdbc:hsqldb:file:hsqldb
    UserName sa
    Password
</Connector>

<Resource id="Default JMS Resource Adapter">
    # Broker configuration
    BrokerXmlConfig broker:(tcp://localhost:61616)?useJmx=false

    # Broker address
    ServerUrl vm://localhost?async=true
</Resource>


<Resourse id="PostgreSQL Database" type="DataSource">
  JdbcDriver  org.postgreql.Driver
  JdbcUrl     jdbc:postgresql://localhost/test
  UserName    postgres
  Password    pass
</Resourse>


<Connector id="Default JMS Connection Factory">

    ResourceAdapter Default JMS Resource Adapter

</Connector>

<!--
#
#  The <Deployments> element can be used to configure file
#  paths where OpenEJB should look for ejb jars or ear files.
#
#  See http://openejb.apache.org/deployments.html
#
#  The below entry is simply a default and can be changed or deleted
-->
<Deployments dir="apps/" />

</openejb>

Thanks.

-- 
View this message in context: http://www.nabble.com/How-to-configure-a-datasource--tf4666327.html#a13329788
Sent from the OpenEJB User mailing list archive at Nabble.com.


Re: How to configure a datasource?

Posted by Jacek Laskowski <ja...@laskowski.net.pl>.
On 10/21/07, satsuma <ka...@hotmail.com> wrote:

> Now the server is up and running, and I can continue.

...and we're awaiting your example to be included in openejb docs ;-)

Jacek

-- 
Jacek Laskowski
http://www.JacekLaskowski.pl

Re: How to configure a datasource?

Posted by satsuma <ka...@hotmail.com>.
Thanks Jacek for pointing that to me.

I already fixed one typo from the tag, after that I read it through to see
if it's correctly spelled before posting this question. Seems like I have to
start minding of my spelling, I had originally written "Recourse".

Now the server is up and running, and I can continue.


Jacek Laskowski-4 wrote:
> 
> On 10/21/07, satsuma <ka...@hotmail.com> wrote:
> 
>> I'm trying to make simple stateless session bean to connect to PostgreSQL
>> database. I've read the instructions at this page:
>> http://openejb.apache.org/databases.html
>> http://openejb.apache.org/databases.html
>>
>> When I add the <Resource> tag in the openejb.xml file, I can not start
>> the
>> server anymore.
>>
>> I get the following exceptions:
>>
>> org.apache.openejb.OpenEJBException: Unable to read OpenEJB configuration
>> file at /opt/openejb-3.0-beta-1/conf/openejb.xml: unexpected element
>> (uri:"http://www.openejb.org/System/Configuration", local:"Resourse").
> 
> Hi,
> 
> Read your email again - I'm sure you'll spot the issue ;-) If not,
> read on. Hint: read the exception message (it should've been clearer,
> but it's clear enough to pinpoint the cause of the issue).
> 
>> My openejb.xml looks like this, I have only added the <Resource> tag to
>> the
>> end.
> 
> The best bet is to use Find feature in your editor. Try to look for
> Resource or better yet use grep 'Resource'. I'm sure you'll be
> surprised.
> 
>> <Resourse id="PostgreSQL Database" type="DataSource">
>>   JdbcDriver  org.postgreql.Driver
>>   JdbcUrl     jdbc:postgresql://localhost/test
>>   UserName    postgres
>>   Password    pass
>> </Resourse>
> 
> Got it now? I intentionally removed other parts of the configuration
> file to get the problem highlighted.
> 
> Okey, you asked for a solution, here it is: change Resourse to
> Resource (note the doubled 's' which is incorrect). That's it!
> 
> Jacek
> 
> -- 
> Jacek Laskowski
> http://www.JacekLaskowski.pl
> 
> 

-- 
View this message in context: http://www.nabble.com/How-to-configure-a-datasource--tf4666327.html#a13330296
Sent from the OpenEJB User mailing list archive at Nabble.com.


Re: How to configure a datasource?

Posted by Jacek Laskowski <ja...@laskowski.net.pl>.
On 10/21/07, satsuma <ka...@hotmail.com> wrote:

> I'm trying to make simple stateless session bean to connect to PostgreSQL
> database. I've read the instructions at this page:
> http://openejb.apache.org/databases.html
> http://openejb.apache.org/databases.html
>
> When I add the <Resource> tag in the openejb.xml file, I can not start the
> server anymore.
>
> I get the following exceptions:
>
> org.apache.openejb.OpenEJBException: Unable to read OpenEJB configuration
> file at /opt/openejb-3.0-beta-1/conf/openejb.xml: unexpected element
> (uri:"http://www.openejb.org/System/Configuration", local:"Resourse").

Hi,

Read your email again - I'm sure you'll spot the issue ;-) If not,
read on. Hint: read the exception message (it should've been clearer,
but it's clear enough to pinpoint the cause of the issue).

> My openejb.xml looks like this, I have only added the <Resource> tag to the
> end.

The best bet is to use Find feature in your editor. Try to look for
Resource or better yet use grep 'Resource'. I'm sure you'll be
surprised.

> <Resourse id="PostgreSQL Database" type="DataSource">
>   JdbcDriver  org.postgreql.Driver
>   JdbcUrl     jdbc:postgresql://localhost/test
>   UserName    postgres
>   Password    pass
> </Resourse>

Got it now? I intentionally removed other parts of the configuration
file to get the problem highlighted.

Okey, you asked for a solution, here it is: change Resourse to
Resource (note the doubled 's' which is incorrect). That's it!

Jacek

-- 
Jacek Laskowski
http://www.JacekLaskowski.pl