Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义类的Jackson二进制序列化_Java_Serialization_Jackson_Apache Jena - Fatal编程技术网

Java 自定义类的Jackson二进制序列化

Java 自定义类的Jackson二进制序列化,java,serialization,jackson,apache-jena,Java,Serialization,Jackson,Apache Jena,我正在尝试使用二进制格式的Jackson序列化我的类,并在尝试了许多不同的替代方法后,努力解决这个问题。我希望有人能帮忙 我的自定义类看起来像: package com.common; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.List import org.apache.jena

我正在尝试使用二进制格式的Jackson序列化我的类,并在尝试了许多不同的替代方法后,努力解决这个问题。我希望有人能帮忙

我的自定义类看起来像:

    package com.common;

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List
    import org.apache.jena.rdf.model.Model;
    import org.apache.jena.rdf.model.RDFNode;
    import org.apache.jena.rdf.model.Statement;
    import org.apache.jena.util.FileManager;
    import org.apache.jena.util.iterator.ExtendedIterator;
    import com.fasterxml.jackson.annotation.JsonCreator;
    import com.fasterxml.jackson.databind.JsonNode;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.node.ArrayNode;
    import com.quick.RDFMain;
    import com.quick.exim.Importer;
    import com.quick.exim.SQEJSONToRDFImporter;
    import com.quick.trans.RDFFormulaToSPARQLTranslator;

    /**
     * A reasoning request, with the request representation based on RDF  standards.
     *
 * 
 */
public class RDFRequest{

    private SimpleSPARQLQuery query = null;
    // TODO: Would it make more sense for context to be a Model?
 //   private ContextWrapper context = null;
 //   private ConfigWrapper config = null;
    List<Statement> context = null;
    List<Statement>  config = null;

    public RDFRequest(SimpleSPARQLQuery query,List<Statement> context,List<Statement>  config) {
        this.query = query;
        this.context = context;
        this.config = config;
    }


    public RDFRequest(){

    }



    public RDFRequest(String queryPath, String driverPath, String vehiclePath) throws IOException {
        String absoluteQueryPath = RDFMain.class.getClassLoader().getResource(queryPath).getPath();
        Importer<ArrayNode, ?> importer = null;
        ArrayNode inputNode = null;
        RDFNode internalFrom = null;
        ObjectMapper mapper = new ObjectMapper();
        InputStream is = new FileInputStream(absoluteQueryPath);
        JsonNode node = mapper.readTree(is);
        RDFFormulaToSPARQLTranslator translator = new RDFFormulaToSPARQLTranslator();
        Model inputModel;
        RDFRequest request = null;

        // Import the query from json
        JsonNode formulaNode = node.get("formula");
        if (formulaNode != null) {
            importer = new SQEJSONToRDFImporter();
            inputNode = (ArrayNode) formulaNode;
        }
        if (importer != null && inputNode != null) {
            internalFrom = (RDFNode) importer.importFrom(inputNode);
            inputModel = internalFrom.getModel();
            query= translator.translate(inputModel);
        }

        // Load the context data
        Model contextData = FileManager.get().loadModel(driverPath, "N3");
        contextData = FileManager.get().readModel(contextData, vehiclePath, "N3");
        ExtendedIterator<Statement> statements = contextData.listStatements();
        context = statements.toList();
        return;
    }

    public SimpleSPARQLQuery getQuery() {
        return query;
    }

    public void setQuery(SimpleSPARQLQuery query) {
        this.query = query;
    }

    public List<Statement> getContext() {
        return context;
    }

    public void setContext(List<Statement> context) {
        this.context = context;
    }

    public List<Statement> getConfig() {
        return config;
    }

    public void setConfig(List<Statement> config) {
        this.config = config;
    }

}
当我执行此操作时,它抛出:

com.fasterxml.jackson.databind.JsonMappingException: Conflicting getter definitions for property "uri": org.apache.jena.graph.Node#getURI(0 params) vs org.apache.jena.graph.Node#isURI(0 params) (through reference chain: com.nuance.nrf.common.RDFRequest["query"]->com.nuance.nrf.common.SimpleSPARQLQuery["variables"]->java.util.ArrayList[0])
    at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:838)
    at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:387)
    at com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.findAndAddSerializer(PropertySerializerMap.java:38)
    at com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase._findAndAddDynamic(AsArraySerializerBase.java:270)
    at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:96)
    at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:21)
    at com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:186)
    at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:569)
    at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:597)
    at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:142)
    at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:569)
    at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:597)
    at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:142)
    at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:118)
    at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:2718)
    at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsBytes(ObjectMapper.java:2233)
    at com.nuance.research.jms.JMSHook.sendMessageUsingJackson(JMSHook.java:334)
    at com.nuance.research.main.RILImpl.exchangeMessage(RILImpl.java:28)
    at com.nuance.research.main.RILTestClient.main(RILTestClient.java:35)
Caused by: java.lang.IllegalArgumentException: Conflicting getter definitions for property "uri": org.apache.jena.graph.Node#getURI(0 params) vs org.apache.jena.graph.Node#isURI(0 params)
    at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getGetter(POJOPropertyBuilder.java:190)
    at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getAccessor(POJOPropertyBuilder.java:283)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.removeIgnorableTypes(BeanSerializerFactory.java:678)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanProperties(BeanSerializerFactory.java:557)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:373)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:268)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:213)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:152)
    at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:873)
    at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:833)
    ... 18 more
我试过用其他的方法,两天以来一直在努力。我必须使用一个名为ApacheJena的外部库,上面的错误来自与该包中的类相关的方法。非常感谢我能得到的任何帮助或如何解决问题的建议。最后,我想将RDFRequest对象转换为字节,并通过JMS将其作为BytemMessage发送。很高兴提供任何澄清

多谢各位

com.fasterxml.jackson.databind.JsonMappingException: Conflicting getter definitions for property "uri": org.apache.jena.graph.Node#getURI(0 params) vs org.apache.jena.graph.Node#isURI(0 params) (through reference chain: com.nuance.nrf.common.RDFRequest["query"]->com.nuance.nrf.common.SimpleSPARQLQuery["variables"]->java.util.ArrayList[0])
    at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:838)
    at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:387)
    at com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.findAndAddSerializer(PropertySerializerMap.java:38)
    at com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase._findAndAddDynamic(AsArraySerializerBase.java:270)
    at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:96)
    at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:21)
    at com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:186)
    at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:569)
    at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:597)
    at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:142)
    at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:569)
    at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:597)
    at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:142)
    at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:118)
    at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:2718)
    at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsBytes(ObjectMapper.java:2233)
    at com.nuance.research.jms.JMSHook.sendMessageUsingJackson(JMSHook.java:334)
    at com.nuance.research.main.RILImpl.exchangeMessage(RILImpl.java:28)
    at com.nuance.research.main.RILTestClient.main(RILTestClient.java:35)
Caused by: java.lang.IllegalArgumentException: Conflicting getter definitions for property "uri": org.apache.jena.graph.Node#getURI(0 params) vs org.apache.jena.graph.Node#isURI(0 params)
    at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getGetter(POJOPropertyBuilder.java:190)
    at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getAccessor(POJOPropertyBuilder.java:283)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.removeIgnorableTypes(BeanSerializerFactory.java:678)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanProperties(BeanSerializerFactory.java:557)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:373)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:268)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:213)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:152)
    at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:873)
    at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:833)
    ... 18 more