首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Optaplanner 7.11:向kie-server发送解决方案的id/参考错误

Optaplanner 7.11:向kie-server发送解决方案的id/参考错误
EN

Stack Overflow用户
提问于 2018-10-03 09:09:02
回答 1查看 130关注 0票数 0

我是tryng示例项目,以了解如何使用Optaplanner特性(使用ver )。7.11-wildfly11决赛)。我安装了一些内置示例,现在在使用我修改的employee rostering示例之后,当我尝试通过REST (使用SOAP)发布不同的xml时,我遇到了一个非常奇怪的错误。

使用下面的xml (摘录)它可以很好地工作,我可以毫无问题地提交xml并检索调用相关端点的最佳解决方案:

代码语言:javascript
复制
    <TeamRoster>
        <employeeList>
            <Employee>
                <name>Luigi</name>
            </Employee>
            <Employee>
                <name>Mauro</name>
            </Employee>
            <Employee>
                <name>Pietro</name>
            </Employee>
            <Employee>
                <name>Gino</name>
            </Employee>
        </employeeList>
        <teamList>
            <Team>
                <name>Squadra 1</name>
                <employeeList>
                    <Employee reference="../../../../employeeList/Employee"/>
                    <Employee reference="../../../../employeeList/Employee[2]"/>
                </employeeList>
                .........

相反,使用以下修改的xml (带有id/引用):

代码语言:javascript
复制
        <TeamRoster id="1">
            <employeeList id="2">
                <Employee id="3">
                    <id>0</id>
                    <name>Luigi</name>
                </Employee>
                <Employee id="4">
                    <id>1</id>
                    <name>Mauro</name>
                </Employee>
                <Employee id="5">
                    <id>2</id>
                    <name>Pietro</name>
                </Employee>
                <Employee id="6">
                    <id>3</id>
                    <name>Gino</name>
                </Employee>
            </employeeList>
            <teamList id="7">
                <Team id="8">
                    <id>0</id>
                    <name>Squadra 1</name>
                    <employeeList id="9">
                        <Employee reference="3"/>
                        <Employee reference="4"/>
                    </employeeList>

kie服务器的响应是一个消息错误:

com.thoughtworks.xstream.converters.ConversionException:无效引用

提供详细资料:

代码语言:javascript
复制
    message             : Invalid reference
    reference           : 3
    referenced-type     : com.linkit.trostering.Employee
    referenceable       : true
    class               : java.util.ArrayList
    required-type       : java.util.ArrayList
    converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
    path                : /TeamRoster/teamList/Team/employeeList/Employee
    line number         : 25
    class[1]            : com.linkit.trostering.Team
    converter-type[1]   : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
    class[2]            : com.linkit.trostering.TeamRoster
    version             : 7.11.0.Final

我已经看到optaplanner示例项目中包含的其他示例使用此选项(如果我理解它是xtream特性)来引用已经使用id而不是xml路径定义的事实。

现在我的疑问是,Optaplanner与kie服务器是否附带了不同的设置?是否有任何选项必须通过REST发送才能使用xtream的这一特性?还有别的事吗?

预先感谢您的帮助,非常感谢

EN

回答 1

Stack Overflow用户

发布于 2018-10-03 12:05:18

第一个xml使用XPath引用。第二个xml使用id引用。第二个需要不同的XStream设置:

代码语言:javascript
复制
xStream = new XStream();
xStream.setMode(XStream.ID_REFERENCES);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52623500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档