Re: Could not auto-map to resource problem when using EJB annotations only

2009-05-06 Thread fmeili



Rex Wang-2 wrote:
 
 yes, Frank
 
 attachment is the improved demo based on your requirement and David's
 suggestion. I have tested it.
 
 HTH
 
 Rex
  
 

Hi Rex,

thanks a lot for your work and help. This works great! So I'm simply able to
define it in the geronimo-application.xml. Now I'm able to deploy the same
EAR in different application server implementations - great! I didn't find
this hint in the Geronimo documentation.

Thanks and Greetings,
 Frank:jumping:
-- 
View this message in context: 
http://www.nabble.com/%22Could-not-auto-map-to-resource%22-problem-when-using-EJB-annotations-only-tp23316686s134p23408531.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.



Re: Could not auto-map to resource problem when using EJB annotations only

2009-05-05 Thread fmeili



Rex Wang-2 wrote:
 
 Hi Frank, sorry for the confusing, it can not be added to the
 application.xml, but should be added to the web.xml / ejb-jar.xml...
 
 here is an example in attachment.
 
 HTH
 
 rex.
 

Hi Rex,

thanks for your answer. But this, I think, is the problem. My EAR consits
out of 40 EJB's and 25 WAR's and all are using the @Resource injection for
the database. Til now I don't have descriptors for the EJB's (no
ejb-jar.xml) - I thought they are no longer neccessary in JEE5. And the
deployment descriptors of the WAR's (web.xml) only contains the
servlet-mappings. (This EAR file can successfully deployed in JBoss and in
GlassFish without modifications.)

To be able to deploy this in Geronimo do I really need to add 40 new
openejb-jar.xml, 40 new ejb-jar.xml and 25 new geronimo-web.xml files
- and also change 25 web.xml files to place the resource-ref tag? Is
there no way to just use injection without specifying it in all descriptors?
Maybe there is a way to define a jdbc resource globally in Geronimo to use
in with injection?

Thanks,
 Frank
-- 
View this message in context: 
http://www.nabble.com/%22Could-not-auto-map-to-resource%22-problem-when-using-EJB-annotations-only-tp23316686s134p23382575.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.



Re: Could not auto-map to resource problem when using EJB annotations only

2009-05-05 Thread David Jencks


On May 5, 2009, at 12:42 AM, fmeili wrote:





Rex Wang-2 wrote:


Hi Frank, sorry for the confusing, it can not be added to the
application.xml, but should be added to the web.xml / ejb-jar.xml...

here is an example in attachment.

HTH

rex.



Hi Rex,

thanks for your answer. But this, I think, is the problem. My EAR  
consits
out of 40 EJB's and 25 WAR's and all are using the @Resource  
injection for

the database. Til now I don't have descriptors for the EJB's (no
ejb-jar.xml) - I thought they are no longer neccessary in JEE5.  
And the

deployment descriptors of the WAR's (web.xml) only contains the
servlet-mappings. (This EAR file can successfully deployed in JBoss  
and in

GlassFish without modifications.)

To be able to deploy this in Geronimo do I really need to add 40 new
openejb-jar.xml, 40 new ejb-jar.xml and 25 new geronimo- 
web.xml files
- and also change 25 web.xml files to place the resource-ref  
tag? Is
there no way to just use injection without specifying it in all  
descriptors?
Maybe there is a way to define a jdbc resource globally in Geronimo  
to use

in with injection?


I think you should be able to avoid geronimo plans for each module.

You need to

1. make sure that the name specified in the annotations or dd resource- 
ref is the same as the datasource name you specify when you deploy the  
connection pool.
2. make the connection pool visible to your application by adding  
its id as a dependency to the geronimo plan for your application.


This should be enough to make the auto-map work.

hope this helps
david jencks





Thanks,
Frank
--
View this message in context: 
http://www.nabble.com/%22Could-not-auto-map-to-resource%22-problem-when-using-EJB-annotations-only-tp23316686s134p23382575.html
Sent from the Apache Geronimo - Users mailing list archive at  
Nabble.com.






Re: Could not auto-map to resource problem when using EJB annotations only

2009-05-04 Thread Rex Wang
hi frank

This should be add to the application.xml(not geronimo-application.xml), coz
it is NOT Geronimo specific. It is the JEE specific.
resource-ref
   res-ref-namejdbc/__mes/res-ref-name
   res-typejavax.sql.DataSource/res-type
   res-authContainer/res-auth
   res-sharing-scopeShareable/res-sharing-scope
/resource-ref

HTH

Rex

2009/5/4 fmeili frank.meilin...@gmx.de




 djencks wrote:
 
 
  On Apr 30, 2009, at 6:51 AM, fmeili wrote:
 
  So. geronimo is assembled out of plugins (e.g. your app becomes a
  plugin once deployed).  The plugins form a directed acyclic graph
  (each plugin has a bunch of parents, and you can't have circular
  dependencies).  When the deployer tries to figure out what datasource
  you're asking for it looks only in the directed acyclic subgraph of
  ancestors of your app.  (this lets you deploy lots of distinct
  datasources with the same name in different plugins and still be
  able to refer to them individually without specifying the exact plugin
  they come from everywhere you want a datasource).
 
  So...
  - deploy a datasource e.g. using the console and note what the
  artifact name is for the resulting plugin
  - add a dependency on that datasource plugin into the ear or ejb plan
  (geronimo-application.xml or openejb-jar.xml)
 
  As long as the name in the @Resource annotation matches the name in
  the connector plan that's all that's necessary.
 
  thanks
  david jencks
 
 

 Hi David,

 thanks a lot for your explanation. I've tried to deploy it, as you
 described, but it didn't work.

 I don't know where my mistake is. I've tried it in the following way:

 1. Using the WebConsole, I've created a database pool using the database
 pool wizard. The name of the pool is jdbc/__mes. The database is
 accessible successfully (test-db-ping works).

 2. Now the database pool with the name jdbc/__mes is listed in the
 Database Pools page in Geronimos WebConosle. If I follow the link Usage
 for this pool, I see a lot of hints how to use this pool - but I can't
 bring
 it to work.

 3. The Usage page tell me to include the following section into my
 web.xml:
  resource-ref
res-ref-namejdbc/MyDataSource/res-ref-name
res-typejavax.sql.DataSource/res-type
res-authContainer/res-auth
res-sharing-scopeShareable/res-sharing-scope
  /resource-ref
 Also this page tell me to insert the following code into the
 geronimo-web.xml file:
  environment
moduleId
artifactIdMyWebApp/artifactId
/moduleId
dependencies
dependency
groupIdconsole.dbpool/groupId
artifactIdjdbc___mes/artifactId
/dependency
/dependencies
/environment
context-root/MyWebApp/context-root
resource-ref
ref-namejdbc/MyDataSource/ref-name
resource-linkjdbc/__mes/resource-link
/resource-ref

 As fas as I understand you, it is not neccessary to do this in the web.xml
 and geronimo-web.xml files. Instead I may define this in the
 geronimo-web.xml.
 As you wrote, I've tried to use add a dependency in the
 geronimo-application.xml - this is the result:
 ?xml version=1.0 encoding=UTF-8?
 application
  environment
moduleId
  artifactIdmes.suite/artifactId
/moduleId
dependencies
  dependency
groupIdconsole.dbpool/groupId
artifactIdjdbc___mes/artifactId
  /dependency
/dependencies
  /environment
 /application

 The @Resource annotation has a name this attribute: jdbc/__mes.

 But I still got this deployment error. Also I've tried to insert the
 following section in the geronimo-application.xml, but it didn't help:

 resource-ref
res-ref-namejdbc/__mes/res-ref-name
res-typejavax.sql.DataSource/res-type
res-authContainer/res-auth
res-sharing-scopeShareable/res-sharing-scope
 /resource-ref

 I don't know, what my mistake is.

 Do I need to add something to the application.xml?
 What do I need to add to the geronimo-web.xml to make jdbc connection
 available for all web and ejb modules included in the ear?

 Thanks,
  Frank

 --
 View this message in context:
 http://www.nabble.com/%22Could-not-auto-map-to-resource%22-problem-when-using-EJB-annotations-only-tp23316686s134p23364735.html
 Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.




Re: Could not auto-map to resource problem when using EJB annotations only

2009-05-04 Thread fmeili



Rex Wang-2 wrote:
 
 hi frank
 
 This should be add to the application.xml(not geronimo-application.xml),
 coz
 it is NOT Geronimo specific. It is the JEE specific.
 resource-ref
res-ref-namejdbc/__mes/res-ref-name
res-typejavax.sql.DataSource/res-type
res-authContainer/res-auth
res-sharing-scopeShareable/res-sharing-scope
 /resource-ref
 
 HTH
 
 Rex
 


Hi Rex,

thanks for the answer. But when I add this to the application.xml I get an
error, that this element is not allowed here. After looking to the 
http://java.sun.com/xml/ns/javaee/application_5.xsd I couldn't find any hint
about the resource-ref tag inside the application.xml.

I couldn't find any hint about the resource-ref inside an application.xml
even not in the JaveEE5 specification.

Have you tried this?

Thanks,
 Frank

-- 
View this message in context: 
http://www.nabble.com/%22Could-not-auto-map-to-resource%22-problem-when-using-EJB-annotations-only-tp23316686s134p23368822.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.



Re: Could not auto-map to resource problem when using EJB annotations only

2009-05-04 Thread Rex Wang
Hi Frank, sorry for the confusing, it can not be added to the
application.xml, but should be added to the web.xml / ejb-jar.xml...

here is an example in attachment.

HTH

rex.


2009/5/4 fmeili frank.meilin...@gmx.de




 Rex Wang-2 wrote:
 
  hi frank
 
  This should be add to the application.xml(not geronimo-application.xml),
  coz
  it is NOT Geronimo specific. It is the JEE specific.
  resource-ref
 res-ref-namejdbc/__mes/res-ref-name
 res-typejavax.sql.DataSource/res-type
 res-authContainer/res-auth
 res-sharing-scopeShareable/res-sharing-scope
  /resource-ref
 
  HTH
 
  Rex
 


 Hi Rex,

 thanks for the answer. But when I add this to the application.xml I get
 an
 error, that this element is not allowed here. After looking to the
 http://java.sun.com/xml/ns/javaee/application_5.xsd I couldn't find any
 hint
 about the resource-ref tag inside the application.xml.

 I couldn't find any hint about the resource-ref inside an application.xml
 even not in the JaveEE5 specification.

 Have you tried this?

 Thanks,
  Frank

 --
 View this message in context:
 http://www.nabble.com/%22Could-not-auto-map-to-resource%22-problem-when-using-EJB-annotations-only-tp23316686s134p23368822.html
 Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.



1
in web console - DB Manager Portlet
create DB: RexDB


2
Run the following SQL:

CREATE TABLE RexTable
  (EMPNO NUMERIC(4) PRIMARY KEY NOT NULL,
   ENAME VARCHAR(10));

INSERT INTO RexTable VALUES
  (,'JONES');
INSERT INTO RexTable VALUES
  (,'SMITH');

3
- Database Pools portlet
- Using the Geronimo database pool wizard 
   Name of Database Pool : RexDS
   Database Type: Derby embeded
- select the driver jar  input Database Name: RexDB

EMPEar.ear
Description: Binary data


Re: Could not auto-map to resource problem when using EJB annotations only

2009-04-30 Thread David Jencks


On Apr 30, 2009, at 6:51 AM, fmeili wrote:



Hi all,

I try to deploy an EAR with some (skinny) WAR's and some EJB's. All  
EJB's
use the @Resource tag for Database access. I always get a deployment  
error,
that the resource could not auto-map. Instead the error message tell  
me to

use a Geronimo deployment plan.

After looking deeper in the Deployment plan mechanism of Geronimo I'm
completely confused. I found that I need an openejb-jar.xml and  
use the

resource-ref Tag in it. This only works, if I have also a standard
ejb-jar.xml. But does this mean, that I have to really write all  
the old

pre JEE5 deployment descriptors for all my EJB's to deploy the EAR to
Geronimo?


You don't have to do that.



Is there a way to tell Geronimo the name of a JDBC resource globally  
- maybe

in the geronimo-application.xml - I haven't found a hint about this?
I tried Geronimo 2.1.4 and 2.2-SNAPSHOT.


So. geronimo is assembled out of plugins (e.g. your app becomes a  
plugin once deployed).  The plugins form a directed acyclic graph  
(each plugin has a bunch of parents, and you can't have circular  
dependencies).  When the deployer tries to figure out what datasource  
you're asking for it looks only in the directed acyclic subgraph of  
ancestors of your app.  (this lets you deploy lots of distinct  
datasources with the same name in different plugins and still be  
able to refer to them individually without specifying the exact plugin  
they come from everywhere you want a datasource).


So...
- deploy a datasource e.g. using the console and note what the  
artifact name is for the resulting plugin
- add a dependency on that datasource plugin into the ear or ejb plan  
(geronimo-application.xml or openejb-jar.xml)


As long as the name in the @Resource annotation matches the name in  
the connector plan that's all that's necessary.


thanks
david jencks




Thanks in advance for an answer,
greetings,
 Frank
--
View this message in context: 
http://www.nabble.com/%22Could-not-auto-map-to-resource%22-problem-when-using-EJB-annotations-only-tp23316686s134p23316686.html
Sent from the Apache Geronimo - Users mailing list archive at  
Nabble.com.