I am new to CanDI , I want to migrate my spring app to JavaEE6 , but having
a lot of troubles in Resin (4.0.5) CanDI :

There is no working sample in the resin site , most are outdated ...

Here is my very basic sample , just JPA 2 and a Servlet :

public interface PersonDao {
  public Person get(long id);
}

public class PersonDaoImpl implements PersonDao , Serializable {
  @PersistenceContext(unitName = "mining", type =
PersistenceContextType.EXTENDED)
  EntityManager em;

  @Override
  public Person get(long id)  {
    return em.find(Person.class , id);
  }
}

public class HelloServlet extends HttpServlet {
  @javax.inject.Inject
  private PersonDao personDao;

  @Override
  protected void doGet(HttpServletRequest hreq, HttpServletResponse hres)
throws ServletException, IOException  {
    PrintWriter out = hres.getWriter();
    System.out.println("personDao = " + personDao); // outputs Null
    Person p = personDao.get(1L); //NPE , personDao is not injected
    out.println("Hello, world! , person = " + p);
    out.close();
  }
}

persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"; version="1.0">

  <persistence-unit name="mining" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>foo.Person</class>
    <properties>
      <property name="hibernate.dialect"
value="org.hibernate.dialect.MySQLDialect" />
      <property name="hibernate.cache.provider_class"
value="org.hibernate.cache.EhCacheProvider" />
      <property name="hibernate.show_sql" value="true" />
      <property name="hibernate.format_sql" value="true" />

      <property name="javax.persistence.jdbc.driver"
value="com.mysql.jdbc.Driver" />
      <property name="javax.persistence.jdbc.user" value="adm" />
      <property name="javax.persistence.jdbc.password" value="pwd" />
      <property name="javax.persistence.jdbc.url"
value="jdbc:mysql://db/mining?useUnicode=true&amp;characterEncoding=UTF8" />
    </properties>
  </persistence-unit>
</persistence>

META-INF/beans.xml
<beans xmlns="http://java.sun.com/xml/ns/javaee";>
</beans>


my environment :

    <dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-core</artifactId>
     <version>3.5.0-CR-2</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate.javax.persistence</groupId>
      <artifactId>hibernate-jpa-2.0-api</artifactId>
      <version>1.0.0-CR-1</version>
      <scope>provided</scope>
    </dependency>


This is a very basic Dao + JPA pattern , but I cannot find how to inject the
PersonDaoImpl to the Dao in the Servlet ,
Can somebody give me a hint ? Thanks in advenced !

BTW , Is META-INF/beans.xml defined in the JavaEE spec ?  What's the
relation with beans.xml and resin-web.xml ?
_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to