从Java播放框架向Solr发送HTTP请求时出现URI语法异常



当我使用java中的WS-url()的API播放框架发出HTTP请求时,会得到URISyntaxException。下面是异常的堆栈跟踪。

   play.api.Application$$anon$1: Execution exception[[IllegalArgumentException: null]]
    at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10.jar:2.2.0]
    at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10.jar:2.2.0]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.0]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.0]
    at scala.Option.map(Option.scala:145) [scala-library.jar:na]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2.applyOrElse(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.0]
Caused by: java.lang.IllegalArgumentException: null
    at java.net.URI.create(URI.java:841) ~[na:1.6.0_65]
    at com.ning.http.client.RequestBuilderBase.buildURI(RequestBuilderBase.java:390) ~[async-http-client.jar:na]
    at com.ning.http.client.RequestBuilderBase.setUrl(RequestBuilderBase.java:373) ~[async-http-client.jar:na]
    at play.libs.WS$WSRequest.setUrl(WS.java:137) ~[play-java_2.10.jar:2.2.0]
    at play.libs.WS$WSRequestHolder.execute(WS.java:454) ~[play-java_2.10.jar:2.2.0]
    at play.libs.WS$WSRequestHolder.get(WS.java:352) ~[play-java_2.10.jar:2.2.0]
Caused by: java.net.URISyntaxException: Illegal character in query at index 419: http://solrUrl.com/solr/catalog/select?facet=true&fl=identifier_ntk,catgroup_id,name,shortDescription,thumbnail,sequence,parentCatgroup_id_facet,childCatgroup_id,storeent_id,childCatentry_id&debugQuery=false&start=0&q=*:*&timeAllowed=15000&json.nl=map&wt=json&fq=storeent_id:(%2210001%22)&fq=catalog_id:%2210001%22&fq=parentCatgroup_id_facet:(+10001_-1)&version=2&rows=50
    at java.net.URI$Parser.fail(URI.java:2810) ~[na:1.6.0_65]
    at java.net.URI$Parser.checkChars(URI.java:2983) ~[na:1.6.0_65]
    at java.net.URI$Parser.parseHierarchical(URI.java:3073) ~[na:1.6.0_65]
    at java.net.URI$Parser.parse(URI.java:3015) ~[na:1.6.0_65]
    at java.net.URI.<init>(URI.java:577) ~[na:1.6.0_65]
    at java.net.URI.create(URI.java:839) ~[na:1.6.0_65]

你能帮我解决这个问题吗?

这似乎不是Solr问题:

引起原因:java.net.URISyntaxException:索引419处的查询中存在非法字符:http://solrUrl.com/solr/catalog/select?facet=true&fl=标识符_ntk,catgroup_id,。。。。。

在java.net.URI$Parser.fail(URI.java:2810)~[na:1.6.0_65]位于java.net.URI$Parser.checkChars(URI.java:2983)~[na:1.6.0_65]在java.net.URI$Parser.parseHierarchive(URI.java:3073)~[na:1.6.0_65]

看起来URL在游戏方面可能是错误的。索引似乎指向最后一个或最后一个字符后的一个字符。我会在打开URL之前打印它,看看里面是否有什么有趣的东西。比如在URL的末尾有一个错误的换行符或类似的东西。

最新更新