我们有两台服务器同时写入一个模式JCR(3.8.1.Final)。 (这可能不是个好主意。)
我们的modehape可能通过Infinispan将PDF文档存储到SQL数据库中。 PDF位于一个级别的文件夹中。 重新启动(并关闭1台服务器)后,我看不到一些文件夹以及存储在其中的PDF文件。
你会建议什么来检索它们,一些恢复工具? 或者一些简单的工具来做Modeshape Export(没有太多的Java编码)?
我有来自JBOSS standalone.xml的SQL数据源定义,所以我可以连接到SQL数据库。我也有存储库配置文件。
马丁
答案 0 :(得分:0)
最后我使用modeshape-jdbc-store-example作为代码库。
https://github.com/ModeShape/modeshape-examples/tree/master/modeshape-jdbc-store-example
然后将infinispan-configuration.xml和my-repository-config.json修改为我的配置。
此外,我还必须修改pom.xml,以便它可以作为包含所有库的独立cmd应用程序运行。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>org.modeshape.example.jdbcstore.ModeShapeExample</mainClass>
<classpathPrefix>libs/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/libs/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
我添加了一些依赖项,以便我的SQL连接可以存储在JNDI中:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>naming-factory</artifactId>
<version>5.5.15</version>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>naming-resources</artifactId>
<version>5.5.15</version>
</dependency>
将连接放入JNDI的代码:
try {
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.naming.java.javaURLContextFactory");
System.setProperty(Context.URL_PKG_PREFIXES, "org.apache.naming");
InitialContext ic = new InitialContext();
ic.createSubcontext("java:");
ic.createSubcontext("java:/jdbc");
final String PROP_DB_NAME = "java:/jdbc/DataDS";
final String PROP_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
final String PROP_CONNECTION_URL = argv[0];
final String PROP_USER = argv[1];
final String PROP_PASWSWORD = argv[2];
// Construct DataSource
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(PROP_DRIVER);
dataSource.setUsername(PROP_USER);
dataSource.setPassword(PROP_PASWSWORD);
dataSource.setUrl(PROP_CONNECTION_URL);
dataSource.setMaxActive(5);
dataSource.setMaxIdle(5);
dataSource.setInitialSize(1);
dataSource.setValidationQuery("SELECT 1");
ic.bind(PROP_DB_NAME, dataSource);
Connection conn = dataSource.getConnection();
} catch (NamingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}