Estou usando Windows XP, NetBeans 6.9.1, TomCat 6.x e DB4o7.
Como posso fazer para que a “minhaBase.yap” não seja criada dentro do diretório BIN do tomcat?
Usei o System.getProperty(“user.dir”), mas o retorno é uma string que aponta para o diretório BIN. Então, tentei fazer o esquema de subir um diretório para em seguida entrar no diretório do “meuProjetoWeb” desse tipo:
System.getProperty(“user.dir”) + “\…\webapps\meuProjetoWeb\novamoda.yap”;
Porém, não dá certo. Agluém tem alguma sugestão?
Para facilitar entender a minha dificuldade olha o código completo:
package br.com.database;
import com.db4o.Db4oEmbedded;
import com.db4o.ObjectContainer;
import com.db4o.ObjectServer;
import com.db4o.config.EmbeddedConfiguration;
import com.db4o.cs.Db4oClientServer;
import com.db4o.cs.config.ServerConfiguration;
import com.db4o.ta.TransparentActivationSupport;
/**
*
* @author DGC
*/
public class DatabaseUtil {
private static String DB4OFILENAME = System.getProperty("user.dir") + "\\minhabase.yap";
private static ObjectServer objectEmbeddedServer = null;
private static ObjectContainer dbClient = null;
private DatabaseUtil() {
}
public static ObjectContainer getCurrentInstanceDb() {
if (dbClient == null) {
openEmbeddedServer();
dbClient = objectEmbeddedServer.openClient();
}
return dbClient;
}
private static void openEmbeddedServer() {
ServerConfiguration serverConfiguration = Db4oClientServer.newServerConfiguration();
serverConfiguration.common().add(new TransparentActivationSupport());
if (objectEmbeddedServer == null) {
objectEmbeddedServer = Db4oClientServer.openServer(serverConfiguration, DB4OFILENAME, 0);
}
}
}
Mesmo que o arquivo “minhaBase.yap” seja criada no diretório BIN do tomcat, aqui no computador funciona de boa. No entanto, haverá problema quando for fazer o deploy num servidor na web, porque lá não vai haver permissão de criação de arquivo em diretório fora do diretório “…/webapps/meuProjetoWeb/”.