我有一个springboot应用程序适用于MarkLogic数据库。我正在使用MarkLogic JAVA客户端api v 3.0.1。
我有一个PojoRepository,除了使用Jboss EAP 6.4.0进行搜索外,其他所有任务都可以正常工作 我尝试使用spring boot的嵌入式服务器和单独的tomcat服务器,它工作正常。我的代码剪辑如下:
@Override
public List<Property> findAll() {
List<Property> list = new ArrayList<>();
PojoQueryBuilder<Property> qb1 = repository.getQueryBuilder();
StructuredQueryDefinition query1 = qb1.and(
qb1.collection(PROPERTY_COLLECTION),
qb1.value("archived", false));
PojoPage<Property> pg = repository.search(query1, 1);
Iterator<Property> it = pg.iterator();
while (it.hasNext()) {
list.add(it.next());
}
System.out.println("list: " + list);
return list;
}
错误日志如下:
17:18:50,802 ERROR [org.springframework.boot.context.web.ErrorPageFilter](http- / 127.0.0.1:8080-1)由于异常[转发请求[/ v1 / preference_categories]的错误页面[本地消息:搜索失败:错误请求。服务器消息:REST-INVALIDPARAM:(错误:FOER0000)无效参数:无效的查询结构(检查命名空间):preference_category.json]:com.marklogic.client.FailedRequestException:本地消息:搜索失败:错误请求。服务器消息:REST-INVALIDPARAM:(错误:FOER0000)无效参数:无效的查询结构(检查命名空间):preference_category.json 在com.marklogic.client.impl.JerseyServices $ JerseySearchRequest.getResponse(JerseyServices.java:2206)[java-client-api-3.0.1.jar:] 在com.marklogic.client.impl.JerseyServices.getBulkDocumentsImpl(JerseyServices.java:869)[java-client-api-3.0.1.jar:] 在com.marklogic.client.impl.JerseyServices.getBulkDocuments(JerseyServices.java:744)[java-client-api-3.0.1.jar:] 在com.marklogic.client.impl.DocumentManagerImpl.search(DocumentManagerImpl.java:500)[java-client-api-3.0.1.jar:] 在com.marklogic.client.impl.JSONDocumentImpl.search(JSONDocumentImpl.java:26)[java-client-api-3.0.1.jar:] 在com.marklogic.client.impl.PojoRepositoryImpl.search(PojoRepositoryImpl.java:340)[java-client-api-3.0.1.jar:] 在com.marklogic.client.impl.PojoRepositoryImpl.search(PojoRepositoryImpl.java:308)[java-client-api-3.0.1.jar:] 在com.optum.pma.service.impl.PrefereceCategoryServiceImpl.findAll(PrefereceCategoryServiceImpl.java:217)[classes:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[rt.jar:1.8.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[rt.jar:1.8.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[rt.jar:1.8.0_51] 在java.lang.reflect.Method.invoke(Method.java:497)[rt.jar:1.8.0_51] 在org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在com.sun.proxy。$ Proxy127.findAll(未知来源) 在com.optum.pma.controller.PreferenceCategoryController.allPCs(PreferenceCategoryController.java:139)[classes:] 在com.optum.pma.controller.PreferenceCategoryController $$ FastClassBySpringCGLIB $$ 19b9caad.invoke()[classes:] 在org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)[spring-core-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.CglibAopProxy $ CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:718)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.aop.framework.CglibAopProxy $ DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:654)[spring-aop-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在com.optum.pma.controller.PreferenceCategoryController $$ EnhancerBySpringCGLIB $$ 10723d75.allPCs()[classes:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[rt.jar:1.8.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[rt.jar:1.8.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[rt.jar:1.8.0_51] 在java.lang.reflect.Method.invoke(Method.java:497)[rt.jar:1.8.0_51] 在org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)[spring-webmvc-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)[spring-webmvc-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)[spring-webmvc-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)[spring-webmvc-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)[spring-webmvc-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)[spring-webmvc-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)[spring-webmvc-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)[spring-webmvc-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在javax.servlet.http.HttpServlet.service(HttpServlet.java:734)[jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2] 在org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)[spring-webmvc-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在javax.servlet.http.HttpServlet.service(HttpServlet.java:847)[jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2] 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:120)[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE] 在org.springframework.boot.context.web.ErrorPageFilter.access $ 000(ErrorPageFilter.java:61)[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE] 在org.springframework.boot.context.web.ErrorPageFilter $ 1.doFilterInternal(ErrorPageFilter.java:95)[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE] 在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 在org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:113)[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE] 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)[jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:653)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:926)[jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在java.lang.Thread.run(Thread.java:745)[rt.jar:1.8.0_51]
如果有人能够解决问题......我们非常感谢任何建议...... 谢谢
答案 0 :(得分:0)
我的猜测是与ML Java Client API使用的Jersey库存在一些版本冲突,我也认为JBoss也会打包。但是这个错误信息很难说。
我尝试调试的东西 - 看看发送给MarkLogic的有效负载,看看是否有错误;检查MarkLogic ErrorLog.txt以获取更多信息;最糟糕的情况是,将一些xdmp:log语句添加到MarkLogic中包含的REST API代码中,以记录在尝试搜索之前MarkLogic正在接收的内容。任何查看HTTP流量的工具都应该有所帮助。
检查JBoss的类路径,看看它是否使用特定版本的Jersey。您可以尝试使用Java客户端API和该版本的Jersey的简单主程序,看看它是否有效或是否重现错误。这是另一种尝试的技术 - 尝试使用反映JBoss使用的类路径重现JBoss之外的错误。
答案 1 :(得分:0)
谢谢你们每一个人的宝贵意见,我试着检查Marklogic ErrorLog中的日志它没有显示任何东西我试图记录重现相同的错误形式其他方法但我不能这样做。在Jboss EAP中,我只收到错误消息:
由于异常而从请求[/ v1 / preference_categories]转发到错误页面 [本地消息:搜索失败:错误请求。服务器消息:REST-INVALIDPARAM :(错误:FOER0000) 参数无效:查询结构无效(检查命名空间):
<query xmlns:search="http://marklogic.com/appservices/search" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<collection-query>
<uri>preference_category.json</uri>
</collection-query>
</query>
但是,当我将JAVA Client API版本从3.0.1更改为3.0.5时,它开始工作。 我不知道具体的Woodstox和OOTB Java Stax实现了这个版本。但对我来说好处是它运作良好。如果我找到一些具体的东西,我会在这里发帖。
感谢。