Closed spanierm42 closed 3 years ago
@spanierm Thanks for interesting spring-data-gremlin. Yes the current code force ssl enabled by default, as we consider it is the recommended way for production. Actually, we can add option to GremlinConfig for disable ssl for debugging, as well as configuration about GraphJson.
@spanierm Looks this issue can be fixed combine with #166 . It is perfect if you can send a PR for this.
@spanierm We have add the sslEnabled as gremlinConfig when prepare the env, could you please help to have a try ?
@Incarnation-p-lee sorry for the late response but I did not find time to test it before today.
With your fix, I was now able to connect to the AWS Neptune database :) I am still fixing problems when I want to store something but this is totally unrelated to this issue (and probably the fault of the person sitting in front of the computer ;)).
Thanks for the help :)
@Incarnation-p-lee Before you actually close this ticket, can you give me some guidance why I cannot save any Person
object in my test application?
I tried to follow the example project and created data objects and repositories, see. https://github.com/spanierm/aws-neptune-spring-boot/blob/master/src/main/kotlin/com/github/spanierm/awsneptunespringboot/PersonRepository.kt. After accessing the database to delete all entries and count the vertices resp. edges, I tried to save a Person
object in https://github.com/spanierm/aws-neptune-spring-boot/blob/master/src/main/kotlin/com/github/spanierm/awsneptunespringboot/AwsNeptuneSpringBootApplication.kt. Unfortunately, it failed with an IllegalArgumentException
and the message should contain id property
, see the below stacktrace.
Did I miss any obvious configuration?
[ec2-user@ip-172-30-1-83 ~]$ java -jar aws-neptune-spring-boot-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.0.RELEASE)
2018-11-04 17:18:50.233 INFO 2698 --- [ main] .g.s.a.AwsNeptuneSpringBootApplicationKt : Starting AwsNeptuneSpringBootApplicationKt on ip-172-30-1-83 with PID 2698 (/home/ec2-user/aws-neptune-spring-boot-0.0.1-SNAPSHOT.jar started by ec2-user in /home/ec2-user)
2018-11-04 17:18:50.243 INFO 2698 --- [ main] .g.s.a.AwsNeptuneSpringBootApplicationKt : No active profile set, falling back to default profiles: default
2018-11-04 17:18:50.880 WARN 2698 --- [kground-preinit] o.s.h.c.j.Jackson2ObjectMapperBuilder : For Jackson Kotlin classes support please add "com.fasterxml.jackson.module:jackson-module-kotlin" to the classpath
2018-11-04 17:18:52.287 INFO 2698 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2018-11-04 17:18:52.420 INFO 2698 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 128ms. Found 1 repository interfaces.
2018-11-04 17:18:54.237 INFO 2698 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2018-11-04 17:18:54.306 INFO 2698 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-11-04 17:18:54.306 INFO 2698 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/9.0.12
2018-11-04 17:18:54.337 INFO 2698 --- [ main] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
2018-11-04 17:18:54.553 INFO 2698 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-11-04 17:18:54.554 INFO 2698 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3444 ms
2018-11-04 17:18:54.620 INFO 2698 --- [ main] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-11-04 17:18:54.629 INFO 2698 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-11-04 17:18:54.630 INFO 2698 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-11-04 17:18:54.630 INFO 2698 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'formContentFilter' to: [/*]
2018-11-04 17:18:54.630 INFO 2698 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
AI: INFO 04-11-2018 17:18, 1: Configuration file has been successfully found as resource
AI: ERROR 04-11-2018 17:18, 1: Failed to create com.microsoft.applicationinsights.web.internal.perfcounter.WebPerformanceCounterModule, com.microsoft.applicationinsights.web.internal.perfcounter.WebPerformanceCounterModule
AI: INFO 04-11-2018 17:18, 1: Configuration file has been successfully found as resource
AI: ERROR 04-11-2018 17:18, 1: Failed to create com.microsoft.applicationinsights.web.internal.perfcounter.WebPerformanceCounterModule, com.microsoft.applicationinsights.web.internal.perfcounter.WebPerformanceCounterModule
2018-11-04 17:18:58.376 INFO 2698 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-11-04 17:18:58.987 INFO 2698 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-11-04 17:18:59.000 INFO 2698 --- [ main] .g.s.a.AwsNeptuneSpringBootApplicationKt : Started AwsNeptuneSpringBootApplicationKt in 10.235 seconds (JVM running for 11.521)
personRepository.deleteAll()
2018-11-04 17:19:00.041 INFO 2698 --- [ main] o.a.tinkerpop.gremlin.driver.Connection : Created new connection for ws://neptunedbinstance-ea5bxx9yu7zp.cxsglve7j1iz.eu-west-1.neptune.amazonaws.com:8182/gremlin
2018-11-04 17:19:00.048 INFO 2698 --- [ main] o.a.tinkerpop.gremlin.driver.Connection : Created new connection for ws://neptunedbinstance-ea5bxx9yu7zp.cxsglve7j1iz.eu-west-1.neptune.amazonaws.com:8182/gremlin
2018-11-04 17:19:00.048 INFO 2698 --- [ main] o.a.t.gremlin.driver.ConnectionPool : Opening connection pool on Host{address=neptunedbinstance-ea5bxx9yu7zp.cxsglve7j1iz.eu-west-1.neptune.amazonaws.com/172.30.2.175:8182, hostUri=ws://neptunedbinstance-ea5bxx9yu7zp.cxsglve7j1iz.eu-west-1.neptune.amazonaws.com:8182/gremlin} with core size of 2
personRepository.vertexCount() = 0
personRepository.edgeCount() = 0
personRepository.count() = 0
personRepository.save(Person(id=PERSON_ID, name=PERSON_NAME, age=PERSON_AGE))
2018-11-04 17:19:00.367 INFO 2698 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-11-04 17:19:00.381 ERROR 2698 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.IllegalStateException: Failed to execute CommandLineRunner
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:816) [spring-boot-2.1.0.RELEASE.jar!/:2.1.0.RELEASE]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797) [spring-boot-2.1.0.RELEASE.jar!/:2.1.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) [spring-boot-2.1.0.RELEASE.jar!/:2.1.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.0.RELEASE.jar!/:2.1.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.0.RELEASE.jar!/:2.1.0.RELEASE]
at com.github.spanierm.awsneptunespringboot.AwsNeptuneSpringBootApplicationKt.main(AwsNeptuneSpringBootApplication.kt:125) [classes!/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [aws-neptune-spring-boot-0.0.1-SNAPSHOT.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [aws-neptune-spring-boot-0.0.1-SNAPSHOT.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [aws-neptune-spring-boot-0.0.1-SNAPSHOT.jar:na]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [aws-neptune-spring-boot-0.0.1-SNAPSHOT.jar:na]
Caused by: java.lang.IllegalArgumentException: should contain id property
at org.springframework.util.Assert.isTrue(Assert.java:118) ~[spring-core-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at com.microsoft.spring.data.gremlin.conversion.result.GremlinResultVertexReader.read(GremlinResultVertexReader.java:33) ~[spring-data-gremlin-2.0.1-SNAPSHOT.jar!/:2.0.1-SNAPSHOT]
at com.microsoft.spring.data.gremlin.conversion.source.AbstractGremlinSource.doGremlinResultRead(AbstractGremlinSource.java:111) ~[spring-data-gremlin-2.0.1-SNAPSHOT.jar!/:2.0.1-SNAPSHOT]
at com.microsoft.spring.data.gremlin.query.GremlinTemplate.recoverDomain(GremlinTemplate.java:341) ~[spring-data-gremlin-2.0.1-SNAPSHOT.jar!/:2.0.1-SNAPSHOT]
at com.microsoft.spring.data.gremlin.query.GremlinTemplate.insert(GremlinTemplate.java:155) ~[spring-data-gremlin-2.0.1-SNAPSHOT.jar!/:2.0.1-SNAPSHOT]
at com.microsoft.spring.data.gremlin.query.GremlinTemplate.save(GremlinTemplate.java:275) ~[spring-data-gremlin-2.0.1-SNAPSHOT.jar!/:2.0.1-SNAPSHOT]
at com.microsoft.spring.data.gremlin.repository.support.SimpleGremlinRepository.save(SimpleGremlinRepository.java:44) ~[spring-data-gremlin-2.0.1-SNAPSHOT.jar!/:2.0.1-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]
at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:359) ~[spring-data-commons-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:200) ~[spring-data-commons-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:644) ~[spring-data-commons-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:608) ~[spring-data-commons-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595) ~[spring-data-commons-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595) ~[spring-data-commons-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59) ~[spring-data-commons-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61) ~[spring-data-commons-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:99) ~[spring-data-commons-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at com.sun.proxy.$Proxy75.save(Unknown Source) ~[na:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) ~[spring-tx-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]
at com.sun.proxy.$Proxy75.save(Unknown Source) ~[na:na]
at com.github.spanierm.awsneptunespringboot.SpringDataGremlinConnection.run(AwsNeptuneSpringBootApplication.kt:121) ~[classes!/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813) [spring-boot-2.1.0.RELEASE.jar!/:2.1.0.RELEASE]
... 13 common frames omitted
2018-11-04 17:19:00.388 INFO 2698 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
@spanierm Thanks for try our repo. It looks the the gremlin server return the result of saved entity has no Id field. As your source if is .kt, I am not sure how the annotation works well on .kt. You can setup one in memory gremlin-server to test if this issue existed.
hi @Incarnation-p-lee I am facing the same issue in spring boot java.
My object is as follows:
import com.microsoft.spring.data.gremlin.annotation.Vertex;
import org.springframework.data.annotation.Id;
import java.io.Serializable;
@Vertex
public class StudentVertex implements Serializable {
@Id
private String id;
private String studentId;
private String firstName;
public StudentVertex() {
}
public StudentVertex(String id, String studentId, String firstName) {
this.id = id;
this.studentId = studentId;
this.firstName = firstName;
}
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "StudentVertex{" +
"id='" + id + '\'' +
", studentId='" + studentId + '\'' +
", firstName='" + firstName + '\'' +
'}';
}
}
Repository Interface as follows
import com.test.models.graphModels.StudentVertex;
import com.microsoft.spring.data.gremlin.repository.GremlinRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface StudentRepository extends GremlinRepository<StudentVertex, String> {
}
and the implementation is as follows
StudentVertex studentVertex = new StudentVertex("1", "100" , "Jack Sparrow");
StudentVertex studentVertex1 = studentRepository.save(studentVertex);
When I query the Neptune DB using gremlin I get the following result
gremlin> g.V().hasLabel('StudentVertex').valueMap()
==>{studentId=[100], firstName=[Jack Sparrow], _classname=[com.test.models.graphModels.StudentVertex]}
gremlin> g.V().hasLabel('StudentVertex')
==>v[1]
gremlin>
So looks like the data is stored correctly in the DB.
My program fails with the error below. Looks like when the data is stored, the vertex gets the id, correctly. However it is not stored as the attribute in the vertex. Hence the return value does not match since id is expected to be present in the attributes of the StudentVertex pojo, as per the standard JPA signature.
java.lang.IllegalArgumentException: should contain id property
at org.springframework.util.Assert.isTrue(Assert.java:118)
at com.microsoft.spring.data.gremlin.conversion.result.GremlinResultVertexReader.validate(GremlinResultVertexReader.java:36)
at com.microsoft.spring.data.gremlin.conversion.result.GremlinResultVertexReader.read(GremlinResultVertexReader.java:52)
at com.microsoft.spring.data.gremlin.conversion.source.AbstractGremlinSource.doGremlinResultRead(AbstractGremlinSource.java:144)
at com.microsoft.spring.data.gremlin.query.GremlinTemplate.recoverDomain(GremlinTemplate.java:341)
at com.microsoft.spring.data.gremlin.query.GremlinTemplate.insert(GremlinTemplate.java:154)
at com.microsoft.spring.data.gremlin.query.GremlinTemplate.save(GremlinTemplate.java:275)
at com.microsoft.spring.data.gremlin.repository.support.SimpleGremlinRepository.save(SimpleGremlinRepository.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:359)
at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:200)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:644)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:608)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy79.save(Unknown Source)
@anuragk-sportsbet Thanks for your issue, could you please share some information about which version are you leverage for this repo ?
Besides that our implementation is DB backend independent and only ensuring it works well on gremlin server. Which means that if the backend DB has comparability issue with gremlin server, there may be something unexpected. You can verify it follow our IT test configuration here.
Hi @Incarnation-p-lee
implementation 'com.microsoft.spring.data.gremlin:spring-data-gremlin:2.1.0'
I am connecting to AWS Neptune using the library above.
Bumping this issue. It looks like the id
property is present, but it's not the top-level in the map. I've got the same set up as @anuragk-sportsbet above. Seems to only happen when connected to neptune.
Closing this issue. Because it's not active for a long time. If anyone have similar issue, please create issue in new repo: https://github.com/Azure/azure-sdk-for-java/issues
Your issue may already be reported! Please search before creating a new one.
Expected Behavior
spring-data-gremlin
can be used with AWS Neptune databases and the correspondinghttp
endpointsCurrent Behavior
spring-data-gremlin
cannot be used with AWS Neptune databases and the correspondinghttp
endpoints since SSL errors occur during build timePossible Solution
GremlinFactory.java
implementation/. Did I miss a configuration option?Steps to Reproduce (for bugs)
The source code used for the tests can be found at spanierm/aws-neptune-spring-boot
cf-template.yaml
src/main/resources/application.yml
to the newly created AWS Neptune endpointexport TERM=xterm-color
./gradlew clean build
As a result, you get the following errors:
Connections to the AWS Neptune instance do work if you use Gremlin directly to connect to it:
src/main/kotlin/com/github/spanierm/awsneptunespringboot/AwsNeptuneSpringBootApplication.kt
and uncomment the first@Component
(GremlinDirectConnection
) while also comment out the second@Component
(SpringDataGremlinConnection
)./gradlew clean build
java -jar build/libs/aws-neptune-spring-boot-0.0.1-SNAPSHOT.jar
The output looks as follows:
Your Environment