To work with a neo4j-graphdatabase standalone server i add the dependency of SDN 3.1.2 to my pom.
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j-rest</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
Because of the Neo4jCdiRepositoryExtension i can work with spring-data-neo4j without the complete Spring-Framework (via CDI).
Now i want to update my SDN Version to 4.0.0.M1.
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>4.0.0.M1</version>
</dependency>
I have to create my own Neo4jCdiRepositoryExtension, this seems really easy. The deploy-process build my new extensions. To use my extensions i need this class that provide all needed configurations:
@ApplicationScoped
public class Neo4jConfigurationProvider {
@Resource(lookup = "rest/neo4j")
private String baseUriString;
private static final String PERSISTENCE_ROOT = "...";
private SessionFactory sessionFactory;
private Neo4jServer neo4jServer;
private Session session;
@PostConstruct
public void init() {
neo4jServer = new RemoteServer(baseUriString);
sessionFactory = new SessionFactory(PERSISTENCE_ROOT + ".person", PERSISTENCE_ROOT + ".relation",
PERSISTENCE_ROOT + ".relations_type");
session = sessionFactory.openSession(baseUriString);
}
@Produces
public SessionFactory sessionFactory() {
return sessionFactory;
}
@Produces
public Neo4jServer neo4jServer() {
return neo4jServer;
}
@Produces
public Neo4jTemplate neo4jTemplate() {
return new Neo4jTemplate(session);
}
}
My glassfish 3 server give me this error message if i want to deploy it:
remote failure: Error occurred during deployment: Exception while loading the app :
java.lang.IllegalStateException: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException:
org.apache.catalina.LifecycleException:
com.sun.jersey.spi.inject.Errors$ErrorMessagesException.
Please see server.log for more details.
My question now is: How can i fix this error?
Firstfully i can not find any server.log, because my server don't start. So i reproduced a version that work, add the sdn-4 dependency and try to get any log of it. So here is the error from my server.log:
The following errors and warnings have been detected with resource and/or provider classes: familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.LoggingProvider(org.neo4j.kernel.logging.Logging) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.rest.transactional.TransactionFilter(org.neo4j.server.database.Database) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.rest.repr.InputFormatProvider(org.neo4j.server.rest.repr.RepresentationFormatRepository) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.rest.repr.OutputFormatProvider(org.neo4j.server.rest.repr.RepresentationFormatRepository) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.rest.paging.LeaseManagerProvider(org.neo4j.server.rest.paging.LeaseManager) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.NeoServerProvider(org.neo4j.server.NeoServer) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.plugins.PluginInvocatorProvider(org.neo4j.server.AbstractNeoServer) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.database.ExecutionEngineProvider(org.neo4j.server.database.CypherExecutor) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.database.CypherExecutorProvider(org.neo4j.server.database.CypherExecutor) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.database.GraphDatabaseServiceProvider(org.neo4j.server.database.Database) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.database.DatabaseProvider(org.neo4j.server.database.Database) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.rrd.RrdDbProvider(org.neo4j.server.database.RrdDbWrapper) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.web.WebServerProvider(org.neo4j.server.web.WebServer) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.web.InjectableWrapper(org.neo4j.server.plugins.Injectable) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.rest.dbms.UserService(org.neo4j.server.security.auth.AuthManager,org.neo4j.server.rest.repr.InputFormat,org.neo4j.server.rest.repr.OutputFormat) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.rest.management.console.ConsoleService(org.neo4j.kernel.configuration.Config,org.neo4j.server.database.Database,javax.servlet.http.HttpServletRequest,org.neo4j.server.rest.repr.OutputFormat,org.neo4j.server.database.CypherExecutor) at parameter index 0 familymanager_1 | SEVERE: Missing dependency for constructor public org.neo4j.server.rest.discovery.DiscoveryService(org.neo4j.kernel.configuration.Config,org.neo4j.server.rest.repr.OutputFormat) at parameter index 0
I search for an other server-instance in my spring-data-neo4j dependency and found the "neo4j-server". I excluded this server from my sdn-4 dependency in my pom to work with this framework:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>4.0.0.RC1</version>
<exclusions>
<exclusion>
<groupId>org.neo4j.app</groupId>
<artifactId>neo4j-server</artifactId>
</exclusion>
</exclusions>
</dependency>
Now i can use the spring-data-neo4j 4-RC1 version under JavaEE 6.