webservice with activejdbc + tomcat7: loss of connection

78 views
Skip to first unread message

Gladyston Batista

unread,
Oct 19, 2012, 10:59:58 AM10/19/12
to activejd...@googlegroups.com
I'm having connection problems when using the webservice with activejdbc + tomcat7.

The webservice works sometimes (for a period of time varied), but he suddenly loses connection and I am not knowing how to reconnect.

Note: I always call the method "CreateConnection ()" in the first line of each method.


Example error message:
Caused by: org.javalite.activejdbc.DBException: org.javalite.activejdbc.DBException: there is no connection 'sqldados' on this thread, are you sure you opened it?, Query: SELECT  * FROM users WHERE  chave=? LIMIT 1, params: webservice.lojaIntegracao
			at org.javalite.activejdbc.DB.connection(DB.java:604)
			at org.javalite.activejdbc.DB.find(DB.java:402)
			at org.javalite.activejdbc.LazyList.hydrate(LazyList.java:305)
			at org.javalite.activejdbc.LazyList.size(LazyList.java:531)
			at org.javalite.activejdbc.Model.findFirst(Model.java:1749)
			at br.com.eacsoftware.pagatto.webservice.integracao.models.Users.findFirst(Users.java)



Model
=====================================
@IdName("no")
@Table("users")
@DbName("sqldados")
public class Users extends Model implements ModelBasic {

  public static Users findPk(Object custno) {
    return Users.findFirst("no=?", custno);
  }

  @Override
  public boolean isModify() {
    return ModelUtils.isModify(this, "fieldhash");
  }

  @Override
  public Usuario createDTO() {
    Usuario dto = new Usuario();
    dto.setCodigo(getString("no"));
    dto.setLogin(getString("login"));
    dto.setNome(getString("name"));
    dto.setSenha(getString("pswd"));
    dto.setSenhaLiberacao(getString("pswd"));// TODO: avaliar o uso da mesma senha (GB)
    return dto;
  }
}


Interface WebService
=====================================
@WebService
@SOAPBinding(style = Style.RPC, use = Use.LITERAL)
public interface UsuarioWS {

  String teste();
  List<Usuario> listUsersAll();
  List<Usuario> listUsersModify();
}


Implementation WebService
=====================================
@BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
@WebService(endpointInterface = "br.com.eacsoftware.pagatto.webservice.integracao.UsuarioWS", serviceName = "UsuarioService")
public class UsuarioImpl extends ServiceUtils implements UsuarioWS {

  private List<Users> getUsers() {
    return Users.findAll();
  }

  @Override
  public List<Usuario> listUsersAll() {
    createConnection(); //in all methods, always trying to create the connection.
    List<Usuario> result = new ArrayList<>();
    for (Users userDB :
getUsers()) {
      result.add(userDB.createDTO());
    }
    return result;
  }

  @Override
  public List<Usuario> listUsersModify() {
    createConnection(); //in all methods, always trying to create the connection.
    List<Usuario> result = new ArrayList<>();
    for (Users
userDB : getUsers()) {
      if (
userDB.isModify()) {
        result.add(
userDB.createDTO());
      }
    }
    return result;
  }
}


Methods Commons
=====================================
public class ServiceUtils {

  private static DB sqldados = null;
  private static DB pagatto = null;
  private static DB sqlpdv = null;

  private static String url_pagatto = "jdbc:mysql://localhost/pagatto";
  private static String url_dados = "jdbc:mysql://localhost/sqldados";
  private static String url_pdv = "jdbc:mysql://localhost/sqlpdv";
  private static String user = "root";
  private static String password = "";

  protected synchronized static void createConnection() {
    if (sqlpdv == null) {
      sqlpdv = new DB("sqlpdv");
      sqlpdv.open("com.mysql.jdbc.Driver", url_pdv, user, password);
    }

    if (sqldados == null) {
      sqldados = new DB("sqldados");
      sqldados.open("com.mysql.jdbc.Driver", url_dados, user, password);
    }

    if (pagatto == null) {     
      pagatto = new DB("pagatto");
      pagatto.open("com.mysql.jdbc.Driver", url_pagatto, user, password);
    }
  }
}




Atenciosamente,
--
Gladyston Pereira Batista
Sócio-Diretor / Stone Tecnologia
Belo Horizonte-MG / (31)8638-8101
ServiceUtils.java
Users.java
UsuarioImpl.java
UsuarioWS.java

Gladyston Batista

unread,
Oct 19, 2012, 3:59:22 PM10/19/12
to activejd...@googlegroups.com
problem solved. Thank you all.

--
Gladyston  Batista
Brazil - Minas Gerais



2012/10/19 Gladyston Batista <glbat...@gmail.com>

Igor Polevoy

unread,
Oct 19, 2012, 6:13:10 PM10/19/12
to activejd...@googlegroups.com, Gladyston Batista
wheew :)
Reply all
Reply to author
Forward
0 new messages