Jakarta ee 未使用EclipseLink提交Websphere 8.5中JTA容器管理事务的事务
我在WAS中用于JTA容器管理器事务 我使用EclipseLink进行JPA 我将eclipseelink.jar和javax.persistence\u V.jar放在WAS\u INSTALL/LIB中 我使用JPA2.0 这是persistence.xml文件: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
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);
}