Jakarta ee 未使用EclipseLink提交Websphere 8.5中JTA容器管理事务的事务

Jakarta ee 未使用EclipseLink提交Websphere 8.5中JTA容器管理事务的事务,jakarta-ee,persistence,eclipselink,websphere-8,Jakarta Ee,Persistence,Eclipselink,Websphere 8,我在WAS中用于JTA容器管理器事务 我使用EclipseLink进行JPA 我将eclipseelink.jar和javax.persistence\u V.jar放在WAS\u INSTALL/LIB中 我使用JPA2.0 这是persistence.xml文件: org.eclipse.persistence.jpa.PersistenceProvider jdbc/OracleDS ma.cmi.model.Accueil ma.cmi.model.Rubrique ma.cmi.mo

我在WAS中用于JTA容器管理器事务

我使用EclipseLink进行JPA

我将eclipseelink.jar和javax.persistence\u V.jar放在WAS\u INSTALL/LIB中

我使用JPA2.0

这是persistence.xml文件:

org.eclipse.persistence.jpa.PersistenceProvider
jdbc/OracleDS
ma.cmi.model.Accueil
ma.cmi.model.Rubrique
ma.cmi.model.Afflie
ma.cmi.model.Contact
ma.cmi.model.RegionUnite
ma.cmi.model.电话
ma.cmi.model.Article
ma.cmi.model.Faq
ma.cmi.model.Banque
ma.cmi.model.Gab
ma.cmi.model.Ville
ma.cmi.model.communiquepress
ma.cmi.model.Lexique
ma.cmi.model.SelectionMail
ma.cmi.model.FIC透视图
ma.cmi.model.Newsletter
ma.cmi.model.Partenaire
ma.cmi.model.Media
ma.cmi.model.PointVente
ma.cmi.model.User
ma.cmi.model.Authority

我将无状态会话bean与ContainerManaged事务一起使用,并使用PersistenceContext注入EntityManager

这是我的Spring文件:

<security:http auto-config="true">
    <security:intercept-url pattern="/AFFILIE/**"
        access="ROLE_CMI_AFFILIE" />
    <security:form-login default-target-url="/AFFILIE/PointsVente.xhtml"
        login-page="/Connexion.xhtml" authentication-failure-url="/Connexion.xhtml" />
    <security:logout logout-success-url="/Connexion.xhtml" />
</security:http>

<security:authentication-manager>
    <security:authentication-provider>
        <security:password-encoder hash="sha-256" />
        <security:jdbc-user-service
            data-source-ref="cmiSecureDataSource"
            users-by-username-query="select username, password, enabled from Users where UPPER(username) = UPPER(?)"
            authorities-by-username-query="select u.username, ur.authority from users u, authorities ur where u.username = ur.the_username and u.username =?" />
    </security:authentication-provider>
</security:authentication-manager>

<bean id="cmiSecureDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jdbc/OracleDS" />
</bean>

<bean id="transactionManager"
 class="org.springframework.transaction.jta.WebSphereUowTransactionManager"/>

select语句对我有效,但INSERT和updates不起作用

我得到了这个错误: 第64行和第61列的消息d'erreur:javax.servlet.servleteException:/AFFILIE/ajoutpointEvent.xhtml action=“#{gestionWebAffilie.ajouterPointVente()}”:java.lang.NullPointerException

错误代码:500

Servlet cible:facesservlet

德雷尔桩:

javax.el.ELException:/AFFILIE/AjoutPointVente.xhtml,位于第64行和第61列action=“#{gestionWebAffilie.ajouterPointVente()}”:java.lang.NullPointerException 位于org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:95) 在javax.faces.component.\u MethodExpressionToMethodBinding.invoke(\u MethodExpressionToMethodBinding.java:88) 位于org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:100) 位于javax.faces.component.UICommand.broadcast(UICommand.java:120) 位于javax.faces.component.UIViewRoot.\u broadcastAll(UIViewRoot.java:973) 位于javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:275) 位于javax.faces.component.UIViewRoot.process(UIViewRoot.java:1285) 位于javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:711) 位于org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:34) 在org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:172)上 位于org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:119) 位于javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) 位于com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:307) 位于com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:562) 位于com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java:255) 位于com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java:259) 位于com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230) 位于com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequest(ServletWrapper.java:779) 位于com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequest(ServletWrapper.java:478) 位于com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.HandlerRequest(ServletWrapperImpl.java:178) 位于com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) 在ma.cmi.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:20) 位于com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) 位于org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) 位于org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 位于org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 位于org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 位于org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 位于org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 位于org.springframework.security.web.savedrequest.RequestCacheAwarRefilter.doFilter(RequestCacheAwarRefilter.java:45) 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 位于org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 位于org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 位于org.springframework.security.web.authenticat
<security:http auto-config="true">
    <security:intercept-url pattern="/AFFILIE/**"
        access="ROLE_CMI_AFFILIE" />
    <security:form-login default-target-url="/AFFILIE/PointsVente.xhtml"
        login-page="/Connexion.xhtml" authentication-failure-url="/Connexion.xhtml" />
    <security:logout logout-success-url="/Connexion.xhtml" />
</security:http>

<security:authentication-manager>
    <security:authentication-provider>
        <security:password-encoder hash="sha-256" />
        <security:jdbc-user-service
            data-source-ref="cmiSecureDataSource"
            users-by-username-query="select username, password, enabled from Users where UPPER(username) = UPPER(?)"
            authorities-by-username-query="select u.username, ur.authority from users u, authorities ur where u.username = ur.the_username and u.username =?" />
    </security:authentication-provider>
</security:authentication-manager>

<bean id="cmiSecureDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jdbc/OracleDS" />
</bean>

<bean id="transactionManager"
 class="org.springframework.transaction.jta.WebSphereUowTransactionManager"/>
@SuppressWarnings("serial")

@SessionScoped

@Named

public class GestionWebAffilie implements Serializable  {


    public String ajouterPointVente() {

        // VALIDATE IF AFFILIE STILL APPROUVED
        validateAffilie();
        int compte=0;
        for(int i =0; i<nbr;i++)
            {if (pointVenteStrings[i].length() != 0)
                compte++;}
if(compte!=0)
for(int i =0; i<nbr;i++)

    if (pointVenteStrings[i].length() != 0)
    {   pointVente.setIdPv(new Long(0));
        pointVente.setEntityId(pointVenteStrings[i]);
        pointVente.setValide("N");
        pointVente.setAffilie(affilie);

        pointVenteBeanDao.save(pointVente);
        pointVente = new PointVente();
    }



        return "SuccesAddPointsVente";
    }
@LocalBean
@Stateless
@TransactionManagement(value=TransactionManagementType.CONTAINER)
public class AffilieBeanDao extends Dao<Affilie> {

    public Affilie getAffilieByEMail(String email) {
        try {
            TypedQuery<Affilie> query = em.createQuery(
                    "Select A from Affilie A where A.email = :email",
                    Affilie.class);
            query.setParameter("email", email);
            return query.getSingleResult();
        } catch (Exception e) {
            return null;
        }
    }

    public Affilie getAffilieByCodeValidation(String codeValidation) {
        try {

            TypedQuery<Affilie> query = em
                    .createQuery(
                            "Select A From Affilie A Where A.codeValidation = :codeValidation",
                            Affilie.class);
            query.setParameter("codeValidation", codeValidation);
            return query.getSingleResult();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    @Override
    protected List<Affilie> getListAll() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected List<Affilie> getListAllByLng(Langue langue) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected Affilie getById(Long id) {
        // TODO Auto-generated method stub
        return null;
    }
}
abstract class Dao<T> {

    @PersistenceContext
    protected EntityManager em;

    public void save(T obj) {
        em.persist(obj);
    }

    public T update(T obj) {
        return em.merge(obj);
    }

    protected void delete(T obj) {
        em.remove(obj);
    }

    protected abstract List<T> getListAll();

    protected abstract List<T> getListAllByLng(Langue langue);

    protected abstract T getById(Long id);

}