Do not use the WebLogic TransactionHelper getUserTransaction method

This rule flags the use of the weblogic.transaction.TransactionHelper getUserTransaction() method. The method implementation must be migrated for use on WebSphere Application Server.

Solution

Use the following code instead of the WebLogic-specific getUserTransaction() method.

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;
}

For more information, see Global Transactions for Network Deployment.