Java判断单引号_java-如果String包含单引号或双引号,则调用CMIS查询时出错

这是我的问题:当我尝试在CMIS查询中传递包含单引号或双引号的查询字符串时,它不会执行,并给出如下错误:

06:19:23,306 ERROR [DispatcherPortlet:561] Could not complete request

org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: Internal Server Error

at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:506)

at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.post(AbstractAtomPubService.java:661)

at org.apache.chemistry.opencmis.client.bindings.spi.atompub.DiscoveryServiceImpl.query(DiscoveryServiceImpl.java:179)

at org.apache.chemistry.opencmis.client.runtime.SessionImpl$6.fetchPage(SessionImpl.java:935)

at org.apache.chemistry.opencmis.client.runtime.util.AbstractIterator.getCurrentPage(AbstractIterator.java:132)

at org.apache.chemistry.opencmis.client.runtime.util.AbstractIterator.getPageNumItems(AbstractIterator.java:57)

at org.apache.chemistry.opencmis.client.runtime.util.AbstractIterable.getPageNumItems(AbstractIterable.java:86)

at com.zeetv.util.UtilMethods.getQueryResults(UtilMethods.java:349)

at com.zeetv.action.twitter.TwitterController.checkTitle(TwitterController.java:121)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:175)

at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:369)

at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.doHandle(AnnotationMethodHandlerAdapter.java:356)

at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.handleResource(AnnotationMethodHandlerAdapter.java:302)

at org.springframework.web.portlet.DispatcherPortlet.doResourceService(DispatcherPortlet.java:859)

at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:527)

at org.springframework.web.portlet.FrameworkPortlet.serveResource(FrameworkPortlet.java:479)

这是我的查询字符串:

select * from my:content where cmis:name Like 'test's new content1'

我也尝试过这样:

select * from my:content where cmis:name Like '"test's new content1"'

提前致谢.

解决方法:

请考虑查看this:

String literals are enclosed in single quotes. Escaping does not follow SQL-92 escaping. Two single quotes within a string literal do not represent a quote character: '''' is not a single quote literal.

CMIS defines backslash-based escaping with the available escape characters, determined by context.

'bob\'s' is used in place of 'bob''s'

SELECT * from cmis:document WHERE cmis:name = 'bob\'s'

Basic escaping:

\\ represents \

\' represents '

标签:alfresco,cmis,liferay,java

来源: https://codeday.me/bug/20191119/2033826.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值