You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by yx zhou <zh...@gmail.com> on 2018/08/24 22:47:31 UTC

[help!] java.lang.NoSuchMethodError: org.apache.solr.client.solrj.request.schema.SchemaRequest

Got the following errow when i try to delete a field with Schema API,  on
Solr 7.0.1,  cloud model

java.lang.NoSuchMethodError:
org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.writeString(Ljava/lang/String;)V

at
org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.write(SchemaRequest.java:824)
at
org.apache.solr.client.solrj.request.schema.SchemaRequest$Update.getContentStreams(SchemaRequest.java:711)
at
org.apache.solr.client.solrj.request.RequestWriter.getContentStreams(RequestWriter.java:51)
at
org.apache.solr.client.solrj.impl.BinaryRequestWriter.getContentStreams(BinaryRequestWriter.java:53)
at
org.apache.solr.client.solrj.impl.HttpSolrClient.createMethod(HttpSolrClient.java:330)
at
org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:251)
at
org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:242)
at
org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:483)
at
org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:413)
at
org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1121)
at
org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:862)
at
org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:793)
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:178)
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:195)
at org.janusgraph.diskstorage.solr.SolrUtil.deleteField(SolrUtil.java:286)
at org.janusgraph.diskstorage.solr.SolrUtil.fieldsSync(SolrUtil.java:249)

My code is

public static void deleteField(CloudSolrClient client, String
collection, String fieldName)
    throws IOException, SolrServerException {
    SchemaRequest.DeleteField deleteFieldRequest = new
SchemaRequest.DeleteField(fieldName);

    client.setDefaultCollection(collection);
    SchemaResponse.UpdateResponse deleteFieldResponse =
deleteFieldRequest.process(client);
}

Re: [help!] java.lang.NoSuchMethodError: org.apache.solr.client.solrj.request.schema.SchemaRequest

Posted by Steve Rowe <sa...@gmail.com>.
Thanks for letting us know about the source of the problem.

--
Steve
www.lucidworks.com

> On Aug 27, 2018, at 3:15 PM, yx zhou <zh...@gmail.com> wrote:
> 
> i found the root cause, it is my setting
> 
>        <exclusion>
>            <groupId>org.noggit</groupId>
>            <artifactId>noggit</artifactId>
>        </exclusion>
> 
> It's has duplicate (version conflict) in my dependency.
> 
> 
> On Mon, Aug 27, 2018 at 11:22 AM yx zhou <zh...@gmail.com> wrote:
> 
>> Hi Steve
>> 
>>    Thank your reply.
>>    My solr server is from
>> http://archive.apache.org/dist/lucene/solr/7.0.1/,   and my SolrJ client
>> is
>> 
>> <dependency>
>>    <groupId>org.apache.solr</groupId>
>>    <artifactId>solr-solrj</artifactId>
>>    <version>7.0.1</version>
>>    <exclusions>
>>        <!-- Use jcl-over-slf4j from gremlin-core -->
>>        <exclusion>
>>            <groupId>org.slf4j</groupId>
>>            <artifactId>jcl-over-slf4j</artifactId>
>>        </exclusion>
>>        <!-- Use noggit from janusgraph-core -->
>>        <exclusion>
>>            <groupId>org.noggit</groupId>
>>            <artifactId>noggit</artifactId>
>>        </exclusion>
>>    </exclusions>
>> </dependency>
>> 
>> 
>> Thanks
>> 
>> 
>> On Fri, Aug 24, 2018 at 4:50 PM Steve Rowe <sa...@gmail.com> wrote:
>> 
>>> Hi,
>>> 
>>> SchemaRequestJSONWriter class was removed in SOLR-12455[1], but this
>>> change has not been released yet (will be released with Solr 7.5).  I’m
>>> guessing you’re using code built against branch_7x or master?  If so, then
>>> one solution is to build against the released source for any 7.x version.
>>> 
>>> [1] https://issues.apache.org/jira/browse/SOLR-12455
>>> 
>>> --
>>> Steve
>>> www.lucidworks.com
>>> 
>>>> On Aug 24, 2018, at 6:47 PM, yx zhou <zh...@gmail.com> wrote:
>>>> 
>>>> Got the following errow when i try to delete a field with Schema API,
>>> on
>>>> Solr 7.0.1,  cloud model
>>>> 
>>>> java.lang.NoSuchMethodError:
>>>> 
>>> org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.writeString(Ljava/lang/String;)V
>>>> 
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.write(SchemaRequest.java:824)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.request.schema.SchemaRequest$Update.getContentStreams(SchemaRequest.java:711)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.request.RequestWriter.getContentStreams(RequestWriter.java:51)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.impl.BinaryRequestWriter.getContentStreams(BinaryRequestWriter.java:53)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.impl.HttpSolrClient.createMethod(HttpSolrClient.java:330)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:251)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:242)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:483)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:413)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1121)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:862)
>>>> at
>>>> 
>>> org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:793)
>>>> at
>>> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:178)
>>>> at
>>> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:195)
>>>> at
>>> org.janusgraph.diskstorage.solr.SolrUtil.deleteField(SolrUtil.java:286)
>>>> at
>>> org.janusgraph.diskstorage.solr.SolrUtil.fieldsSync(SolrUtil.java:249)
>>>> 
>>>> My code is
>>>> 
>>>> public static void deleteField(CloudSolrClient client, String
>>>> collection, String fieldName)
>>>>   throws IOException, SolrServerException {
>>>>   SchemaRequest.DeleteField deleteFieldRequest = new
>>>> SchemaRequest.DeleteField(fieldName);
>>>> 
>>>>   client.setDefaultCollection(collection);
>>>>   SchemaResponse.UpdateResponse deleteFieldResponse =
>>>> deleteFieldRequest.process(client);
>>>> }
>>> 
>>> 


Re: [help!] java.lang.NoSuchMethodError: org.apache.solr.client.solrj.request.schema.SchemaRequest

Posted by yx zhou <zh...@gmail.com>.
i found the root cause, it is my setting

        <exclusion>
            <groupId>org.noggit</groupId>
            <artifactId>noggit</artifactId>
        </exclusion>

It's has duplicate (version conflict) in my dependency.


On Mon, Aug 27, 2018 at 11:22 AM yx zhou <zh...@gmail.com> wrote:

> Hi Steve
>
>     Thank your reply.
>     My solr server is from
> http://archive.apache.org/dist/lucene/solr/7.0.1/,   and my SolrJ client
> is
>
> <dependency>
>     <groupId>org.apache.solr</groupId>
>     <artifactId>solr-solrj</artifactId>
>     <version>7.0.1</version>
>     <exclusions>
>         <!-- Use jcl-over-slf4j from gremlin-core -->
>         <exclusion>
>             <groupId>org.slf4j</groupId>
>             <artifactId>jcl-over-slf4j</artifactId>
>         </exclusion>
>         <!-- Use noggit from janusgraph-core -->
>         <exclusion>
>             <groupId>org.noggit</groupId>
>             <artifactId>noggit</artifactId>
>         </exclusion>
>     </exclusions>
> </dependency>
>
>
> Thanks
>
>
> On Fri, Aug 24, 2018 at 4:50 PM Steve Rowe <sa...@gmail.com> wrote:
>
>> Hi,
>>
>> SchemaRequestJSONWriter class was removed in SOLR-12455[1], but this
>> change has not been released yet (will be released with Solr 7.5).  I’m
>> guessing you’re using code built against branch_7x or master?  If so, then
>> one solution is to build against the released source for any 7.x version.
>>
>> [1] https://issues.apache.org/jira/browse/SOLR-12455
>>
>> --
>> Steve
>> www.lucidworks.com
>>
>> > On Aug 24, 2018, at 6:47 PM, yx zhou <zh...@gmail.com> wrote:
>> >
>> > Got the following errow when i try to delete a field with Schema API,
>> on
>> > Solr 7.0.1,  cloud model
>> >
>> > java.lang.NoSuchMethodError:
>> >
>> org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.writeString(Ljava/lang/String;)V
>> >
>> > at
>> >
>> org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.write(SchemaRequest.java:824)
>> > at
>> >
>> org.apache.solr.client.solrj.request.schema.SchemaRequest$Update.getContentStreams(SchemaRequest.java:711)
>> > at
>> >
>> org.apache.solr.client.solrj.request.RequestWriter.getContentStreams(RequestWriter.java:51)
>> > at
>> >
>> org.apache.solr.client.solrj.impl.BinaryRequestWriter.getContentStreams(BinaryRequestWriter.java:53)
>> > at
>> >
>> org.apache.solr.client.solrj.impl.HttpSolrClient.createMethod(HttpSolrClient.java:330)
>> > at
>> >
>> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:251)
>> > at
>> >
>> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:242)
>> > at
>> >
>> org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:483)
>> > at
>> >
>> org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:413)
>> > at
>> >
>> org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1121)
>> > at
>> >
>> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:862)
>> > at
>> >
>> org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:793)
>> > at
>> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:178)
>> > at
>> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:195)
>> > at
>> org.janusgraph.diskstorage.solr.SolrUtil.deleteField(SolrUtil.java:286)
>> > at
>> org.janusgraph.diskstorage.solr.SolrUtil.fieldsSync(SolrUtil.java:249)
>> >
>> > My code is
>> >
>> > public static void deleteField(CloudSolrClient client, String
>> > collection, String fieldName)
>> >    throws IOException, SolrServerException {
>> >    SchemaRequest.DeleteField deleteFieldRequest = new
>> > SchemaRequest.DeleteField(fieldName);
>> >
>> >    client.setDefaultCollection(collection);
>> >    SchemaResponse.UpdateResponse deleteFieldResponse =
>> > deleteFieldRequest.process(client);
>> > }
>>
>>

Re: [help!] java.lang.NoSuchMethodError: org.apache.solr.client.solrj.request.schema.SchemaRequest

Posted by yx zhou <zh...@gmail.com>.
Hi Steve

    Thank your reply.
    My solr server is from http://archive.apache.org/dist/lucene/solr/7.0.1/,
 and my SolrJ client is

<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>7.0.1</version>
    <exclusions>
        <!-- Use jcl-over-slf4j from gremlin-core -->
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </exclusion>
        <!-- Use noggit from janusgraph-core -->
        <exclusion>
            <groupId>org.noggit</groupId>
            <artifactId>noggit</artifactId>
        </exclusion>
    </exclusions>
</dependency>


Thanks


On Fri, Aug 24, 2018 at 4:50 PM Steve Rowe <sa...@gmail.com> wrote:

> Hi,
>
> SchemaRequestJSONWriter class was removed in SOLR-12455[1], but this
> change has not been released yet (will be released with Solr 7.5).  I’m
> guessing you’re using code built against branch_7x or master?  If so, then
> one solution is to build against the released source for any 7.x version.
>
> [1] https://issues.apache.org/jira/browse/SOLR-12455
>
> --
> Steve
> www.lucidworks.com
>
> > On Aug 24, 2018, at 6:47 PM, yx zhou <zh...@gmail.com> wrote:
> >
> > Got the following errow when i try to delete a field with Schema API,  on
> > Solr 7.0.1,  cloud model
> >
> > java.lang.NoSuchMethodError:
> >
> org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.writeString(Ljava/lang/String;)V
> >
> > at
> >
> org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.write(SchemaRequest.java:824)
> > at
> >
> org.apache.solr.client.solrj.request.schema.SchemaRequest$Update.getContentStreams(SchemaRequest.java:711)
> > at
> >
> org.apache.solr.client.solrj.request.RequestWriter.getContentStreams(RequestWriter.java:51)
> > at
> >
> org.apache.solr.client.solrj.impl.BinaryRequestWriter.getContentStreams(BinaryRequestWriter.java:53)
> > at
> >
> org.apache.solr.client.solrj.impl.HttpSolrClient.createMethod(HttpSolrClient.java:330)
> > at
> >
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:251)
> > at
> >
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:242)
> > at
> >
> org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:483)
> > at
> >
> org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:413)
> > at
> >
> org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1121)
> > at
> >
> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:862)
> > at
> >
> org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:793)
> > at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:178)
> > at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:195)
> > at
> org.janusgraph.diskstorage.solr.SolrUtil.deleteField(SolrUtil.java:286)
> > at org.janusgraph.diskstorage.solr.SolrUtil.fieldsSync(SolrUtil.java:249)
> >
> > My code is
> >
> > public static void deleteField(CloudSolrClient client, String
> > collection, String fieldName)
> >    throws IOException, SolrServerException {
> >    SchemaRequest.DeleteField deleteFieldRequest = new
> > SchemaRequest.DeleteField(fieldName);
> >
> >    client.setDefaultCollection(collection);
> >    SchemaResponse.UpdateResponse deleteFieldResponse =
> > deleteFieldRequest.process(client);
> > }
>
>

Re: [help!] java.lang.NoSuchMethodError: org.apache.solr.client.solrj.request.schema.SchemaRequest

Posted by Steve Rowe <sa...@gmail.com>.
Hi,

SchemaRequestJSONWriter class was removed in SOLR-12455[1], but this change has not been released yet (will be released with Solr 7.5).  I’m guessing you’re using code built against branch_7x or master?  If so, then one solution is to build against the released source for any 7.x version.

[1] https://issues.apache.org/jira/browse/SOLR-12455

--
Steve
www.lucidworks.com

> On Aug 24, 2018, at 6:47 PM, yx zhou <zh...@gmail.com> wrote:
> 
> Got the following errow when i try to delete a field with Schema API,  on
> Solr 7.0.1,  cloud model
> 
> java.lang.NoSuchMethodError:
> org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.writeString(Ljava/lang/String;)V
> 
> at
> org.apache.solr.client.solrj.request.schema.SchemaRequest$SchemaRequestJSONWriter.write(SchemaRequest.java:824)
> at
> org.apache.solr.client.solrj.request.schema.SchemaRequest$Update.getContentStreams(SchemaRequest.java:711)
> at
> org.apache.solr.client.solrj.request.RequestWriter.getContentStreams(RequestWriter.java:51)
> at
> org.apache.solr.client.solrj.impl.BinaryRequestWriter.getContentStreams(BinaryRequestWriter.java:53)
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.createMethod(HttpSolrClient.java:330)
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:251)
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:242)
> at
> org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:483)
> at
> org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:413)
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1121)
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:862)
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:793)
> at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:178)
> at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:195)
> at org.janusgraph.diskstorage.solr.SolrUtil.deleteField(SolrUtil.java:286)
> at org.janusgraph.diskstorage.solr.SolrUtil.fieldsSync(SolrUtil.java:249)
> 
> My code is
> 
> public static void deleteField(CloudSolrClient client, String
> collection, String fieldName)
>    throws IOException, SolrServerException {
>    SchemaRequest.DeleteField deleteFieldRequest = new
> SchemaRequest.DeleteField(fieldName);
> 
>    client.setDefaultCollection(collection);
>    SchemaResponse.UpdateResponse deleteFieldResponse =
> deleteFieldRequest.process(client);
> }