Nu utilizaţi metoda WebLogic TransactionHelper getUserTransaction

Această regulă semnalează utilizarea metodei weblogic.transaction.TransactionHelper getUserTransaction(). Implementarea metodei trebuie să fie migrată pentru utilizarea pe WebSphere Application Server.

Soluţie

Utilizaţi următorul cod în locul metodei WebLogic-specific getUserTransaction().

public static UserTransaction getUserTransaction() {
UserTransaction txn = null;
try {
Properties params = getInitialContextProperties();
      javax.naming.InitialContext ctx = new javax.naming.InitialContext(params);
      txn = (UserTransaction) ctx.lookup("java:comp/UserTransaction");
} catch(Throwable t) {
t.printStackTrace();
}
return txn;

}

public static Properties getInitialContextProperties() {
Properties props = new Properties();

props.put(Context.INITIAL_CONTEXT_FACTORY, getInitialContextFactoryName());
props.put(Context.URL_PKG_PREFIXES, "com.ibm.ws.runtime:com.ibm.ws.naming");
props.put("org.omg.CORBA.ORBClass", "com.ibm.CORBA.iiop.ORB");
return props;
}

Pentru informaţii suplimentare, vedeţi Global Transactions for Network Deployment.