The class level annotation for declaring resource jndi entries is @Resources:

@Resources({ @Resource(name="PostgreSQL Database", type=DataSource.class) })

Also the type attribute is a java.lang.Class object not a java.lang.String object.

BTW it is much easier to use field injection like this:

  @Stateless
  public class HelloBean implements Hello {
    @Resource
    private DataSource dataSource;

    public String sayHello() {
      return "Hello from EJB world!";
    }
  }

This way you can avoid all the annoying boiler plate JNDI code.

-dain

On Oct 22, 2007, at 10:02 AM, satsuma wrote:


Hi,

This is not actually solved yet. When I try to compile my bean class, I get
an error that says:

HelloBean.java:7: cannot find symbol
symbol: class Resource
@Resource(name = "PostgreSQL Database", type = "javax.sql.DataSource")
 ^
1 error

My source files look like this

// Remote interface
import javax.ejb.Remote;
import java.util.List;

@Remote
public interface Hello
{
  public String sayHello();
}

// Bean class

import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.*;

@Resource(name = "PostgreSQL Database", type = "javax.sql.DataSource")
@Stateless
public class HelloBean implements Hello
{
  public String sayHello()
  {
    return "Hello from EJB world!";
  }
}

There's no database operations yet, because I'm first trying to get it
through the compiler with the Resource annotation. The PersistenceContext
annotation does not cause any errors.

My classpath is

.:/opt/apache-tomcat-6.0.10/lib/servlet-api.jar:
/opt/apache-tomcat-6.0.10/lib/jsp-api.jar:
/usr/share/java/postgresql-jdbc3-8.1.jar:/opt/junit/junit-4.4.jar:
/opt/openejb-3.0-beta-1/lib/geronimo-ejb_3.0_spec-1.0.jar:
/opt/openejb-3.0-beta-1/lib/openejb-client-3.0-beta-1.jar:
/opt/openejb-3.0-beta-1/lib/geronimo-jpa_3.0_spec-1.1.jar

Is there something missing?

Java is version 1.5.0_08.


satsuma wrote:

Thanks Dario, that does it!

Allthough I have no problem with the compilation part any more, but I
still can't get the database connection to work. I'll make a thread for
the new question, to keep this thread under the current subject.


Dario Laverde wrote:

Hello Satsuma,

Add the following 2 jars to your classpath:

geronimo-ejb_3.0_spec-1.0.jar
geronimo-jpa_3.0_spec-1.1.jar

For an example (using Tomcat) check my blog entry at:
http://javanotebook.com/2007/09/28/openejb_3_and_tomcat_6.html

-Dario

Thank you Mohammad for your reply.

I can not find such a jar file from the lib directory. The only ones
close
to that(containing 'persistence') are openjpa- persistence-1.0.0.jar and
openjpa-persistence-jdbc-1.0.0.jar, so I added both of those to my
classpath, but that didn't solve the problem. Any more tips?



Mohammad Nour El-Din wrote:

Try including the persistence-api-XXXX.jar found in the
${openejb.home}/lib
directory .

On 10/18/07, satsuma <[EMAIL PROTECTED]> wrote:


Hi,

I have just started EJB programming and I ran into a problem, when
trying
to
implement a simple stateless session bean that accesses database. I
have
been following the instruction in the openEJB documentation page,
http://openejb.apache.org/databases.html

When I try to compile my class, I get an error that states "package javax.persistence.* does not exist" and because of this I can not use annotations such as @Resource or @PersistenceContext. The @Stateless annotation on the other hand, works as supposed(I made the hello world
tutorial from the documentation).

I have added geronimo-ejb_3.0_spec-1.0.jar and
openejb-client-3.0-beta-1.jar
to my classpath, do I need to add something more?

Thanks.
--
View this message in context:
http://www.nabble.com/Where-do-I-get-javax.persistence- package--tf4648542.html#a13279676
Sent from the OpenEJB User mailing list archive at Nabble.com.




--
Thanks
- Mohammad Nour



--
View this message in context:
http://www.nabble.com/Where-do-I-get-javax.persistence-package-- tf4648542.html#a13281604
Sent from the OpenEJB User mailing list archive at Nabble.com.









--
View this message in context: http://www.nabble.com/Where-do-I-get- javax.persistence-package--tf4648542.html#a13346735
Sent from the OpenEJB User mailing list archive at Nabble.com.


Reply via email to