Java Q-Restlet/Spring-NotWritablePropertyException与教程示例?

Java Q-Restlet/Spring-NotWritablePropertyException与教程示例?,java,spring,restlet,Java,Spring,Restlet,我正在训练Restlet/Spring组合,但有些事情我仍然不明白。。。我希望你能帮助我。 事实上,我正在尝试将Spring的依赖性systeme与Restlet一起使用(如本教程中所示:)。所以我试着自己做,但没有成功。我的代码返回此异常: org.springframework.beans.factory.BeanCreationException:创建名为“basecampComponent”的bean时出错,该bean在ServletContext资源[/WEB-INF/applicat

我正在训练Restlet/Spring组合,但有些事情我仍然不明白。。。我希望你能帮助我。 事实上,我正在尝试将Spring的依赖性systeme与Restlet一起使用(如本教程中所示:)。所以我试着自己做,但没有成功。我的代码返回此异常:

org.springframework.beans.factory.BeanCreationException:创建名为“basecampComponent”的bean时出错,该bean在ServletContext资源[/WEB-INF/applicationContext.xml]中定义: 设置bean属性“defaultTarget”时无法解析对bean“basecampAppliction”的引用;嵌套异常为org.springframework.beans.factory.beancreatitionException:创建名为“basecampAppliction”的bean时出错,该名称在ServletContext资源[/WEB-INF/applicationContext.xml]中定义: 设置属性值时出错;嵌套异常为org.springframework.beans.NotWritablePropertyException:bean类[com.mycompany.restlet.basecamp.application.BaseCampApplication]的无效属性“root”: Bean属性“root”不可写或具有无效的setter方法。setter的参数类型与getter的返回类型匹配吗

所以我在寻找文件“ApplicationContext.xml”,这是他的内容:

<bean id="basecampComponent" class="org.restlet.ext.spring.SpringComponent">
  <property name="defaultTarget" ref="basecampAppliction" />
</bean>
<bean id="basecampAppliction">class="com.mycompany.restlet.basecamp.application.BaseCampApplication">
  <property name="root" ref="router" />
</bean>
<!--  Define the router -->
<bean name="router" class="org.restlet.ext.spring.SpringBeanRouter" />

class=“com.mycompany.restlet.basecamp.application.BaseCampApplication”>
有人知道我在哪里可以找到调试这个的方法

顺便说一句,我使用的是Java1.8.0\u60

谢谢你的帮助。
Benjamin

我认为
应用程序
类中没有
root
属性。您应该在
BaseCampApplication
类中添加一个,并使用它来配置应用程序(请参见
createInboundRoot
方法),如下所述:

public class BaseCampApplication extends Application {
    private Restlet root;

    public Restlet createInboundRoot() {
        return root;
    }

    public void setRoot(Restlet root) {
        this.root = root;
    }
}
希望它能帮助你,
蒂埃里

在网上寻找了一些信息之后,我有一个假设,我是如何解决这个问题的

在这个链接()上,他用应用程序的属性“inboundroot”绑定路由器。所以我认为有一个最小的变化(在教程中没有注意到)。事实上,我尝试了存档中提出的项目(不起作用)和您自己编写教程的方式。这又是两个解决方案

最终的解决方案是将属性的名称改为“inboundroot”再改为“root”

“永远不要相信芭蕾舞团”


感谢您花时间帮助我。

请在您的问题中放置
com.mycompany.restlet.basecamp.application.BaseCampApplication
,或者更准确地说,放置根变量的setter
package com.mycompany.restlet.basecamp.application;导入org.restlet.Application;导入org.restlet.ext.spring.SpringBeanRouter;公共类BaseCampApplication扩展应用程序{}
这是基本代码。一位朋友告诉我尝试在里面添加以下代码:
private springbeanrootroot;public void setRoot(springbeanroute){this.root=route;}public SpringBeanRouter getRoot(){return this.root;}
我试过了,但也没用。很抱歉出现这种情况。我是一个在stackoverflow上发帖的新手。谢谢Thierry。实际上,类应用程序中似乎有一个名为“inboundroot”的属性。调用方法“createInboundRoot()”时绑定此属性。顺便说一下,我在这个网站上找到了我问题的解决方案。(). 你是我的救世主!