【问题标题】:NoValueFactoryException when using Zeroc Ice with java在 java 中使用 Zeroc Ice 时出现 NoValueFactoryException
【发布时间】:2020-08-08 14:27:41
【问题描述】:

我在我的项目中使用 ZeroC Ice。我对以下异常有疑问:

com.zeroc.Ice.NoValueFactoryException
   reason = "no value factory found and compact format prevents slicing (the sender should use the sliced format instead)"
   type = "::test::DataExt"
at com.zeroc.Ice.InputStream$EncapsDecoder11.skipSlice(InputStream.java:3120)
at com.zeroc.Ice.InputStream$EncapsDecoder11.readInstance(InputStream.java:3333)
at com.zeroc.Ice.InputStream$EncapsDecoder11.readValue(InputStream.java:2881)
at com.zeroc.Ice.InputStream.readValue(InputStream.java:1933)
at org.megacinol.test.DataListHelper.read(DataListHelper.java:48)
at org.megacinol.test.TestClass._iceD_testSth(TestClass.java:58)
at org.megacinol.test.TestClass._iceDispatch(TestClass.java:106)
at com.zeroc.IceInternal.Incoming.invoke(Incoming.java:221)
at com.zeroc.Ice.ConnectionI.invokeAll(ConnectionI.java:2706)
at com.zeroc.Ice.ConnectionI.dispatch(ConnectionI.java:1292)
at com.zeroc.Ice.ConnectionI.message(ConnectionI.java:1203)
at com.zeroc.IceInternal.ThreadPool.run(ThreadPool.java:412)
at com.zeroc.IceInternal.ThreadPool.access$500(ThreadPool.java:7)
at com.zeroc.IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:781)
at java.base/java.lang.Thread.run(Thread.java:830)

我的切片文件如下所示:

[["underscore"]]
[["java:package:org.megacinol"]]

module test
{
    class Data
    {
        string name;
        string profession;
    }

    ["java:serializable:temp.Player"]
    sequence<byte> Player;

    class DataExt extends Data
    {
        Player player;
    }

    ["java:type:java.util.ArrayList<Data>"] sequence<Data> DataList;

    interface TestClass
    {
        void testSth(DataList data);
    }
}

经过一些实验和调试,我发现,删除

[["java:package:org.megacinol"]]

解决问题。

我可以用嵌套模块声明替换这个元数据,但我宁愿坚持元数据方法。

有没有其他方法可以解决这个问题?

【问题讨论】:

    标签: java ice


    【解决方案1】:

    您需要按照documentation 中的说明使用Ice.Package. 配置属性进行配置

    所以对于您的示例,您需要设置配置属性

    Ice.Package.test=org.megacinol
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-03
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 2010-10-25
      • 1970-01-01
      • 2011-02-11
      相关资源
      最近更新 更多