Boa tarde pessoal,
Estou com um problema ao rodar uma aplicação desktop fora de minha IDE.
Estou utilizando JavaDB e JPA para acessar o banco.
Dentro da IDE (Netbeans) subo a aplicação, inicio o servidor e conecto no banco normalmente, mas quando executo o jar criado me dá a seguinte Exception:
[EL Severe]: 2013-05-29 17:08:08.533--ServerSession(1653647)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLNonTransientConnectionException: A conexão foi recusada, porque o banco de dados msdnaa não foi encontrado
o código que carrega o banco está aqui:
System.setProperty("derby.system.home", Programa.class.getResource("/database").getPath());
NetworkServerControl servidor = new NetworkServerControl(InetAddress.getByName("localhost"), 1527);
servidor.start(new PrintWriter(System.out));
E o meu persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="MsdnaaPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>entidades.Cadastro</class>
<class>entidades.Escola</class>
<class>entidades.Curso</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/msdnaa"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
</properties>
</persistence-unit>
</persistence>
Ao rodar o código dentro da aplicação a linha
System.out.println(Programa.class.getResource("/database").getPath());
retorna
/opt/Projects/Msdnaa/build/classes/database
rodando o .jar o resultado é o seguinte:
file:/opt/Projects/Msdnaa/dist/Msdnaa.jar!/database
Alguém tem idéia de como fazer para que o JavaDB encontre os arquivos do banco que estão dentro do .jar da aplicação?