`
andyjackson
  • 浏览: 58556 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

restlet学习笔记-在spring中如何配置application和resource

阅读更多

在官方给的spring和restlet结合的例子中,仅仅给出了一个将所有的resources交由spring管理的方式。这样直接跳过了application的配置。但是,他会带来一个问题:无法伪造PUT和DELETE方法。当然,也可以让spring来管理application,然后由application自己管理自己的resources。但是,这样,resources无法由spring来注入dao。(详细在ajax的博客中:有详细介绍 )。我今天仔细研究了restlet给出的关于spring的扩展包,发现还有第三种方法。将application和resources都交给spring来管理,并且由spring为每个application分配resources。

<bean id="component" class="org.restlet.ext.spring.SpringComponent">
	<property name="defaultTarget" ref="application" />
</bean>
<bean id="application" class="burenzheng.ResourceApplication">
	<lookup-method name="createRoot" bean="resource" />
</bean>  
<bean id="resource" class="org.restlet.ext.spring.SpringRouter">
		<property name="attachments">
			<map>
				<entry key="/items">
					<bean class="org.restlet.ext.spring.SpringFinder">
						<lookup-method name="createResource" bean="itemsResource" />
					</bean>
				</entry>
				<entry key="/items/{id}">
					<bean class="org.restlet.ext.spring.SpringFinder">
						<lookup-method name="createResource" bean="itemResource" />
					</bean>
				</entry>
			</map>
		</property>
	</bean>

	<bean id="itemsResource" class="burenzheng.ItemsResource" />
	<bean id="itemResource" class="burenzheng.ItemResource" />

 相信大家应该能够看懂,其实关键就是:我们知道是在Applciation的createRoot方法中为application配置resources,那么,现在最关键的就是如何配置这个方法?

sprig的lookup-method,就能够解决它。然后,大家可以在自己的构造函数中伪造PUT和DELETE

分享到:
评论
7 楼 wxb880114 2012-12-10  
大师,burenzheng.ResourceApplication类怎么实现,继承 Application??
6 楼 ys1608 2012-05-16  
liyf155 写道
ys1608 写道
您好,我是一名大四学生,导师要求毕设采用restlet+spring+hibernate的结构实现,在配置中,将与上述类似的配置写入一个xml中
<bean name="root" class="org.restlet.ext.spring.SpringRouter">
		
		<property name="attachments">
			<map>
				<entry key="/Temp/{TempId}">
				   <bean class="org.restlet.ext.spring.SpringFinder">  
                       <lookup-method name="create" bean="TempResource" />  
                   </bean> 
                </entry>
                <!--   entry key="/Temp">
				   <bean class="org.restlet.ext.spring.SpringFinder">  
                       <lookup-method name="create" bean="TempsResource" />  
                   </bean> 
                </entry 
                -->
               
				
			</map>
		</property>
</bean>

再将其他如sessionfactory等写入applicationcontext.xml中:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation"
			value="classpath:hibernate.cfg.xml">
		</property>
	</bean>
	<bean id="TempDAO" class="org.hibernate.model.TempDAO">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
			</property>
	</bean>
	<bean id="tempResource" class="org.hibernate.resource.TempResource" scope="prototype">	
		<property name ="tempDao">
		 <ref bean="TempDAO"/>
		 </property>
			
	</bean>
	
	<bean id="transactionManager" 
	class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>

但是当测试时发送一个post请求时总会获得404错误,您能指导一下是配置问题还是Resource对于DAO的调用问题。
万分感谢!


不好意思,好久没上javaeye了。404是路径错误,可能web.xml配置也有问题。要不你把整个项目发我邮箱,我帮你看看。liyf155@gmail.com


您好,感谢您的回复,我的错误已经得到解决,问题出在找不到ApplicationContext.xml文件,之后改变存放的路径就解决了,感谢您的回复!
5 楼 liyf155 2012-05-08  
ys1608 写道
您好,我是一名大四学生,导师要求毕设采用restlet+spring+hibernate的结构实现,在配置中,将与上述类似的配置写入一个xml中
<bean name="root" class="org.restlet.ext.spring.SpringRouter">
		
		<property name="attachments">
			<map>
				<entry key="/Temp/{TempId}">
				   <bean class="org.restlet.ext.spring.SpringFinder">  
                       <lookup-method name="create" bean="TempResource" />  
                   </bean> 
                </entry>
                <!--   entry key="/Temp">
				   <bean class="org.restlet.ext.spring.SpringFinder">  
                       <lookup-method name="create" bean="TempsResource" />  
                   </bean> 
                </entry 
                -->
               
				
			</map>
		</property>
</bean>

再将其他如sessionfactory等写入applicationcontext.xml中:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation"
			value="classpath:hibernate.cfg.xml">
		</property>
	</bean>
	<bean id="TempDAO" class="org.hibernate.model.TempDAO">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
			</property>
	</bean>
	<bean id="tempResource" class="org.hibernate.resource.TempResource" scope="prototype">	
		<property name ="tempDao">
		 <ref bean="TempDAO"/>
		 </property>
			
	</bean>
	
	<bean id="transactionManager" 
	class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>

但是当测试时发送一个post请求时总会获得404错误,您能指导一下是配置问题还是Resource对于DAO的调用问题。
万分感谢!


不好意思,好久没上javaeye了。404是路径错误,可能web.xml配置也有问题。要不你把整个项目发我邮箱,我帮你看看。liyf155@gmail.com
4 楼 ys1608 2012-04-20  
您好,我是一名大四学生,导师要求毕设采用restlet+spring+hibernate的结构实现,在配置中,将与上述类似的配置写入一个xml中
<bean name="root" class="org.restlet.ext.spring.SpringRouter">
		
		<property name="attachments">
			<map>
				<entry key="/Temp/{TempId}">
				   <bean class="org.restlet.ext.spring.SpringFinder">  
                       <lookup-method name="create" bean="TempResource" />  
                   </bean> 
                </entry>
                <!--   entry key="/Temp">
				   <bean class="org.restlet.ext.spring.SpringFinder">  
                       <lookup-method name="create" bean="TempsResource" />  
                   </bean> 
                </entry 
                -->
               
				
			</map>
		</property>
</bean>

再将其他如sessionfactory等写入applicationcontext.xml中:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation"
			value="classpath:hibernate.cfg.xml">
		</property>
	</bean>
	<bean id="TempDAO" class="org.hibernate.model.TempDAO">
		<property name="sessionFactory">
			<ref bean="sessionFactory"/>
			</property>
	</bean>
	<bean id="tempResource" class="org.hibernate.resource.TempResource" scope="prototype">	
		<property name ="tempDao">
		 <ref bean="TempDAO"/>
		 </property>
			
	</bean>
	
	<bean id="transactionManager" 
	class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>

但是当测试时发送一个post请求时总会获得404错误,您能指导一下是配置问题还是Resource对于DAO的调用问题。
万分感谢!
3 楼 liyf155 2011-02-21  
大师啊,能否把代码发到圈子里共享的地方供大家下载学习?
2 楼 zhc0822 2010-07-24  
renaqiu 写道
大师,这么牛逼的文章怎么能不往首页发呢?

大师啊!没想到在这里看到了两位大师的真容!
1 楼 renaqiu 2010-07-24  
大师,这么牛逼的文章怎么能不往首页发呢?

相关推荐

    camel-restlet-spring-web-app

    标题 "camel-restlet-spring-web-app" 暗示了一个基于Apache Camel、Restlet和Spring Web的应用程序示例,该示例使用Jetty作为嵌入式服务器。这个项目结合了这些技术来创建一个RESTful API服务。让我们深入探讨每个...

    restlet_jax-rs列子(客户端+服务端)

    RESTlet和JAX-RS是两个在Web服务开发中至关重要的技术。RESTlet是一个开源框架,专门用于构建RESTful(Representational State Transfer)应用程序,而JAX-RS(Java API for RESTful Web Services)则是Java平台上的...

    RESTlet-jee-2.0.9自用.rar

    "restlet-jee-2.0.9.zip"是RESTlet-jee-2.0.9的源代码或者库文件,可能包含了所需的jar包、文档和其他资源,用于在项目中直接引用或进行二次开发。 总的来说,RESTlet-jee-2.0.9自用.rar这个压缩包是一个关于使用...

    chromecj.com-Restlet-Client-REST-API-Testing_v2.8.0.1.rar

    在“chromecj.com-Restlet-Client-REST-API-Testing_v2.8.0.1.rar”压缩包中,包含的是Restlet Client的扩展文件“chromecj.com-Restlet-Client-REST-API-Testing_v2.8.0.1.crx”。 Restful API是现代Web服务的...

    restlet-jee-2.0.3

    在Java开发中,JAR(Java Archive)文件是一种用于存储Java类、资源和其他元数据的文件格式。Restlet JEE 2.0.3的JAR包集合包含了实现RESTful服务所需的各种组件和库,帮助开发者更方便地创建、部署和管理RESTful ...

    restlet-client-rest-api-t.crx

    restlet-client 谷歌插件 接口调试 最新

    Restlet-Client-REST-API-Testing_v2.8.0.1

    Restlet Client是一款强大的REST API测试工具,尤其在与Chrome浏览器结合使用时,它能为开发者提供便捷的API接口测试和调试功能。此版本为v2.8.0.1,表明这是一个更新到一定稳定性的软件,可能包含了之前版本的改进...

    nexus-restlet1x-plugin-2.6.1-01.zip

    了解这些知识点后,开发者可以在实际工作中利用 Nexus 管理依赖,使用 Restlet 构建 REST 服务,通过 Hamcrest 进行精确的断言测试,特别是当涉及到日期处理时,Hamcrest-Date 将提供极大的便利。同时,开源社区的...

    restlet-j2ee-2.0.15.rar

    在"restlet-jee-2.0.15"这个版本中,你可能会找到以下内容: - `restlet.jar`:主库文件,包含Restlet的核心组件。 - `documentation`:包含API文档和用户指南,帮助开发者了解如何使用框架。 - `examples`:实例...

    restlet-jse-2.1.1.zip

    该项目的主要目标是:在提供同等功能的同时,尽量遵守Roy Fielding博士论文中所阐述的REST的目标。它的另一个主要目标是:提出一个既适于客户端应用又适于服务端的应用的、统一的Web视图。 Restlet的思想是:HTTP...

    chromecj.com-Restlet-Client-REST-API-Testing_v2.8.0.1.zip

    在使用过程中,用户可以通过 Chrome 浏览器的右上角扩展图标来访问和使用 Restlet Client。 总之,Restlet Client 是一个强大的 Chrome 插件,专为 REST API 开发和测试而设计,提供了一站式的解决方案,帮助开发者...

    restlet-jee-2.2.2

    Restlet是一个开源框架,专为构建RESTful Web服务和客户端应用程序设计。...通过理解和掌握这些知识点,开发者能够充分利用Restlet-jee-2.2.2在Java EE环境中构建高效、灵活且易于维护的RESTful服务。

    Web Api调试工具 Chrome插件Restlet-Client-REST-API-Testing

    3. **历史记录**:Restlet Client会保存所有发送的请求,方便开发者回顾和复用之前的请求配置。 4. **自动化测试**:用户可以创建测试套件,将多个请求组织成测试集,自动化执行测试,节省重复工作的时间。 5. **...

    restlet-jse-2.2.1.zip

    Restlet是一款强大的开源框架,专为构建RESTful(Representational State Transfer)Web服务而设计。...通过深入学习和实践,开发者可以充分利用Restlet来提升其在分布式系统和Web应用开发中的能力。

    Restlet2 + Spring3 注解方式配置

    在这个配置中,Restlet的版本是restlet-jee-2.0.3,这是针对Java EE环境的版本。同时,Spring框架的版本为3.0.4.RELEASE。这些依赖需要添加到你的项目构建配置(如Maven或Gradle)中,以便正确地引入和管理库。 接...

    restlet-jee-2.0.6.zip_Restlet 2..0_Restlet framework2.0_org.rest

    在"压缩包子文件的文件名称列表"中,只列出了"restlet-jee-2.0.6",这通常意味着压缩包内包含了Restlet 2.0.6版本的全部JAR文件,包括核心库、扩展和其他必要的组件,开发者可以直接将其添加到Java EE项目中引用。...

    restlet-jse-2.1.2

    在"restlet-jse-2.1.2"这个压缩包中,我们主要关注的是Restlet框架针对Java标准版(Java SE)的实现。版本号"2.1.2"表明这是一个特定的稳定版本,可能包含了之前版本的改进和修复。 Restlet框架的核心组件包括以下...

    Atlas2.3.0依赖: org.restlet/sqoop-1.4.6.2.3.99.0-195

    在IT行业中,我们经常涉及到各种库和框架的集成与使用,这次我们关注的是"Atlas2.3.0"依赖的组件:"org.restlet/sqoop-1.4.6.2.3.99.0-195"。这个依赖包含了三个关键的JAR文件:`sqoop-1.4.6.2.3.99.0-195.jar`,`...

    restlet-jse

    在压缩包文件"restlet-jse"中,可能包含了Restlet-JSE的库文件、示例代码、文档或者配置文件。这些内容可以帮助初学者快速上手,通过实例了解如何在项目中引入和使用Restlet-JSE框架。开发者可以通过解压文件,运行...

    restlet-jee-2.1.1.zip

    该项目的主要目标是:在提供同等功能的同时,尽量遵守Roy Fielding博士论文中所阐述的REST的目标。它的另一个主要目标是:提出一个既适于客户端应用又适于服务端的应用的、统一的Web视图。 Restlet的思想是:HTTP...

Global site tag (gtag.js) - Google Analytics