Erro é porque o entityManager é sempre nulo.
Erro https://gist.github.com/anonymous/8bd13cfaecd896be3b2748f6cb103e76
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="desif" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>java:/desif-ds</jta-data-source>
<!-- -->
<class>br.com.netsoft.desif.modelo.desif.ConfiguracaoEntity</class>
<properties>
<!-- Configurações específicas do Hibernate -->
<property name="jboss.entity.validater.jndi.name" value="java:/em" />
<property name="jboss.entity.manager.factory.jndi.name"
value="java:/emf/desif" />
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="show_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
Quando inicio o servidor entendo que ele conectar no servidor, pois ele mostra isto no console.
00:13:35,418 INFO [org.hibernate.tool.hbm2ddl.TableMetadata] (ServerService Thread Pool -- 50) HHH000261: Table found: public.fr_usuario_grupo
00:13:35,418 INFO [org.hibernate.tool.hbm2ddl.TableMetadata] (ServerService Thread Pool -- 50) HHH000037: Columns: [statusdoregistroid, ip_movimentacao, ts_movimentacao, ugg_id, sis_id, nr_versao, grp_codigo, grp_id, ds_situacao, cd_login_movimentacao, tp_operacao, st_registro, usr_codigo, id]
00:13:35,418 INFO [org.hibernate.tool.hbm2ddl.TableMetadata] (ServerService Thread Pool -- 50) HHH000108: Foreign keys: [fk_cjrbyne6hfk0miajfgduk5rfr, fr_usuario_grupo_fk2, fr_usuario_grupo_fk, fr_usuario_grupo_fk1]
A maneira como você esta configurando esta errada, pra configurar o banco de dados com spring da para usar annotation(via classes) ou xml, da forma que você configurou funcionaria normalmente no java ee, segue um exemplo de como configurar o banco com xml no spring tirado da própria documentação do framework:
<?xml version="1.0" encoding="UTF-8"?>
<!-- this is the service object that we want to make transactional -->
<bean id="fooService" class="x.y.service.DefaultFooService"/>
<!-- the transactional advice (what 'happens'; see the <aop:advisor/> bean below) -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<!-- the transactional semantics... -->
<tx:attributes>
<!-- all methods starting with 'get' are read-only -->
<tx:method name="get*" read-only="true"/>
<!-- other methods use the default transaction settings (see below) -->
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!-- ensure that the above transactional advice runs for any execution
of an operation defined by the FooService interface -->
<aop:config>
<aop:pointcut id="fooServiceOperation" expression="execution(* x.y.service.FooService.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation"/>
</aop:config>
<!-- don't forget the DataSource -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@rj-t42:1521:elvis"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</bean>
<!-- similarly, don't forget the PlatformTransactionManager -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- other <bean/> definitions here -->
Segue o link também:
https://docs.spring.io/spring/docs/current/spring-framework-reference/data-access.html#spring-data-tier