我正在训练关于组合Restlet / Spring但是有些事我还是不明白......我希望你能帮助我。 事实上,我正在尝试使用Spring with Restlet的Inject dependancies systeme(就像在本教程中一样:http://restlet.com/technical-resources/restlet-framework/guide/2.3/introduction/getting-started/maven-spring)。所以我试着自己做,但那不起作用。我的代码返回此异常:
org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/applicationContext.xml]中定义名为'basecampComponent'的bean时出错: 设置bean属性'defaultTarget'时无法解析对bean'basecampAppliction'的引用;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建在ServletContext资源[/WEB-INF/applicationContext.xml]中定义名为'basecampAppliction'的bean时出错: 设置属性值时出错;嵌套异常是org.springframework.beans.NotWritablePropertyException:bean类的无效属性“root”[com.mycompany.restlet.basecamp.application.BaseCampApplication]: 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" />
有人知道我在哪里可以找到调试方法吗?
顺便说一下,我在Java 1.8.0_60。
感谢您的所有帮助。 本杰明
答案 0 :(得分:1)
在通过网络查找一些信息之后,我有一个假设我是如何解决这个问题的。
在此链接(Spring & Restlet : 100% XML configuration?)上,他将路由器与属性&#34; inboundroot&#34;绑定在一起。申请。所以我认为这是一个最小的改变(在教程中没有注意到)。事实上,我尝试了存档中提出的项目(没有工作)以及您自己编写教程的方式。这又是两个解决方案。
最终解决方案包括将属性的名称更改为&#34; inboundroot&#34; to&#34; root&#34;。
&#34;永远不要相信tuto&#34;
感谢您抽出时间帮助我。
答案 1 :(得分:0)
我认为root
类中没有Application
属性。您应该在BaseCampApplication
类中添加一个并使用它来配置您的应用程序(请参阅createInboundRoot
方法),如下所述:
public class BaseCampApplication extends Application {
private Restlet root;
public Restlet createInboundRoot() {
return root;
}
public void setRoot(Restlet root) {
this.root = root;
}
}
希望它可以帮到你, 亨利