Edita el archivo pom.xml en la raíz de tu proyecto, allí añade la siguiente dependencia dentro de la parte <dependencies>:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>13.3.1.jre8-preview</version>
</dependency>
Quizás ya tengas este código en tu pom.xml pero comentado, en ese caso simplemente descoméntalo.<Resource name="jdbc/MiAplicacionDS" auth="Container"
type="javax.sql.DataSource"
maxTotal="100" maxIdle="20" maxWaitMillis="10000"
username="root" password="ao49fmsk"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;databaseName=miaplicaciondb"/>
CREATE DATABASE miaplicaciondb;

$ cd miaplicacion
$ mvn install
Nota de optimización: En lugar de mvn install, que hace un build de Maven completo, puedes usar mvn war:exploded, suficiente para aplicar los cambios de arriba para desarrollo. Puedes llamar a mvn war:exploded desde el OpenXava Studio con Run As > Maven build... y tecleando war:exploded para goal.
Ejecuta tu aplicación, debería funcionar bien contra tu base de datos MS SQL Server. Si fallara, verifica que tu base de datos está funcionando, que el usuario y la contraseña son correctos, que la IP del servidor es correcta. Verifica también que el usuario tiene privilegios para crear bases de datos y tablas (si quieres usar la generación automática de esquema de OpenXava, no necesario si las tablas ya existen).
Si al ejecutar la aplicación no funciona y en algún punto de la traza de error te encuentras esto:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption.
Error: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target". ClientConnectionId:6b818518-97bd-4b0d-adb2-153605134e2e
Para resolver el problema añade el sufijo ;encrypt=true;trustServerCertificate=true; a la URL de conexión, dejando tu definición de fuente de datos en context.xml de esta forma:
<Resource name="jdbc/MiAplicacionDS" auth="Container"
type="javax.sql.DataSource"
maxTotal="100" maxIdle="20" maxWaitMillis="10000"
username="root" password="ao49fmsk"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;databaseName=miaplicaciondb;encrypt=true;trustServerCertificate=true;"/>
Si sigue fallando pregúntanos en el foro de ayuda de OpenXava. Incluye el contenido de tu persistence.xml, context.xml (quita las contraseñas) y sobre todo la traza generada, puedes encontrar la traza en la pestaña Console del OpenXava Studio.
Cuando creas un nuevo proyecto OpenXava, la clase lanzadora (en el paquete run con el mismo nombre que tu proyecto) incluye una línea DBServer.start() para arrancar la base de datos HSQLDB por defecto. Dado que ahora usas MS SQL Server, esta línea ya no es necesaria. Puedes comentarla o eliminarla para mejorar el rendimiento de arranque:
public class miaplicacion {
public static void main(String[] args) throws Exception {
// DBServer.start("miaplicacion-db"); // Comenta o elimina, HSQLDB ya no es necesario
AppServer.run("miaplicacion");
}
}