[quote=roanbrasil]cara ainda estou pegando null pointer exception e agora é nessa parte aqui
EntityManager em = emf.createEntityManager();
@PersistenceUnit(name = "ctsp-jpa")
private EntityManagerFactory emf;
/** Method processing HTTP GET requests, producing "text/plain" MIME media
* type.
* @return String that will be send back as a response of type "text/plain".
* @throws NamingException
*/
@GET
@Produces("text/plain")
public String getIt() throws RuntimeException {
EntityManager em = emf.createEntityManager();
Query query = em.createQuery("select c from Country c where c.id = :id");
query.setParameter("id", 1);
List<?> results = query.getResultList();
Iterator<?> it = results.iterator();
Country c = null;
if(it.hasNext()){
c = (Country) it.next();
}
return "Hello there";
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>org.citespace.rest.api</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/webresources/*</url-pattern>
</servlet-mapping>
<resource-ref>
<description>MySQL DataSource</description>
<res-ref-name>jdbc/citespace-jpaDatasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Persistence deployment descriptor for dev profile -->
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="ctsp-jpa">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>java:comp/env/jdbc/citespace-jpaDatasource</non-jta-data-source>
<!-- <jta-data-source>java:/citespace-jpaDatasource</jta-data-source>-->
<!-- The <jar-file> element is necessary if you put the persistence.xml in the WAR and the classes in the JAR -->
<!--
<jar-file>../../vehicles.jar</jar-file>
-->
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.connection.characterEncoding" value="UTF-8"/>
<!-- <property name="hibernate.connection.url" value="jdbc:mysql://localhost/citespace_article"/>
<property name="hibernate.connection.username" value="****"/>
<property name="hibernate.connection.password" value="****"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>-->
<!-- <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"/>-->
</properties>
</persistence-unit>
jetty-env.xml
[code]
<?xml version="1.0"?>
jdbc/citespace-jpaDatasource
jdbc:mysql://localhost:3306/citespace_article
****
***
[/code][/quote]
[quote=roanbrasil]cara ainda estou pegando null pointer exception e agora é nessa parte aqui
EntityManager em = emf.createEntityManager();
@PersistenceUnit(name = "ctsp-jpa")
private EntityManagerFactory emf;
/** Method processing HTTP GET requests, producing "text/plain" MIME media
* type.
* @return String that will be send back as a response of type "text/plain".
* @throws NamingException
*/
@GET
@Produces("text/plain")
public String getIt() throws RuntimeException {
EntityManager em = emf.createEntityManager();
Query query = em.createQuery("select c from Country c where c.id = :id");
query.setParameter("id", 1);
List<?> results = query.getResultList();
Iterator<?> it = results.iterator();
Country c = null;
if(it.hasNext()){
c = (Country) it.next();
}
return "Hello there";
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>org.citespace.rest.api</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/webresources/*</url-pattern>
</servlet-mapping>
<resource-ref>
<description>MySQL DataSource</description>
<res-ref-name>jdbc/citespace-jpaDatasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Persistence deployment descriptor for dev profile -->
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="ctsp-jpa">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>java:comp/env/jdbc/citespace-jpaDatasource</non-jta-data-source>
<!-- <jta-data-source>java:/citespace-jpaDatasource</jta-data-source>-->
<!-- The <jar-file> element is necessary if you put the persistence.xml in the WAR and the classes in the JAR -->
<!--
<jar-file>../../vehicles.jar</jar-file>
-->
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.connection.characterEncoding" value="UTF-8"/>
<!-- <property name="hibernate.connection.url" value="jdbc:mysql://localhost/citespace_article"/>
<property name="hibernate.connection.username" value="****"/>
<property name="hibernate.connection.password" value="****"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>-->
<!-- <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"/>-->
</properties>
</persistence-unit>
jetty-env.xml
[code]
<?xml version="1.0"?>
jdbc/citespace-jpaDatasource
jdbc:mysql://localhost:3306/citespace_article
****
***
[/code][/quote]
Boa tarde!!!
Galera, alguém conseguiu ou já passou pela situação acima?
Estou com o mesmo problema, sendo que, a unica coisa que muda é que estou usando JPA (eclipse link) como persistência, Jersey e Glassfish V3
Quando coloco o annotation @PersistenceUnit no EntityManagerFactory como acima o mesmo sempre vem null.
Segue abaixo meu web.xml.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>br.com.grupocriar.scp.ScpRequestFilter</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
<param-value>br.com.grupocriar.scp.ScpRequestFilter</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.feature.Redirect</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>unit:scpPU</param-name>
<param-value>persistence</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<persistence-unit-ref>
<persistence-unit-ref-name>persistence</persistence-unit-ref-name>
<persistence-unit-name>scpPU</persistence-unit-name>
</persistence-unit-ref>
<resource-ref>
<res-ref-name>UserTransaction</res-ref-name>
<res-type>javax.transaction.UserTransaction</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<persistence-context-ref>
<persistence-context-ref-name>persistence</persistence-context-ref-name>
<persistence-unit-name>scpPU</persistence-unit-name>
</persistence-context-ref>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
E uma classe que criei para testar
package br.com.grupocriar.scp.codigos.controller;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceUnit;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/defaultContext")
public class DefaultContext {
@PersistenceUnit(unitName="scpPU")
protected EntityManagerFactory emf;
protected EntityManager em;
public DefaultContext() {
try {
em = emf.createEntityManager();
em.isOpen();
} catch (Exception e) {
e.printStackTrace();
}
}
@GET
public String get() {
return "Teste";
}
}