关于restletjava的信息

博主:adminadmin 2022-11-22 04:22:06 57

今天给各位分享restletjava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java容器有哪些 restlet

一、基于spring配置的Rest简单服务

1、新建RestSpringApplication Web工程。

将restlet和spring的jar包复制进来。红色部分为新加入进来的jar包。

将上篇中的RestApplication工程项目中的src的源文件复制过来。

2、将web.xml加入下面代码

servlet

servlet-namerestlet/servlet-name

servlet-class

org.restlet.ext.spring.RestletFrameworkServlet

/servlet-class

init-param

param-nameorg.restlet.component/param-name

param-valuerestletComponent/param-value

/init-param

/servlet

servlet-mapping

servlet-namerestlet/servlet-name

url-pattern/*/url-pattern

/servlet-mapping

上面代码指定了restlet使用spring的RestletFrameworkServlet。

3、建立restlet-servlet.xml文件,只需要配置org.restlet.ext.spring.SpringRouter,及对应的路径和资源文件。

bean name="root"

property name="attachments"

map

entry key="/student/{studentId}"

bean

lookup-method name="create" bean="StudentResource" /

/bean

/entry

entry key="/student"

bean

lookup-method name="create" bean="StudentsResource" /

/bean

/entry

/map

/property

/bean

bean id="StudentResource" class="org.lifeba.ws.resource.StudentResource" scope="prototype"/

bean id="StudentsResource" class="org.lifeba.ws.resource.StudentsResource" scope="prototype"/

上面的代码配置了 /student/{studentId}对应StudentResource,以及student对应StudentsResource资源类。通过SpringRouter可以非常方便的通过attachments配置资源路径。如果你有更多的路径,你可以建立多个entry即可。

4、好了,你现在可以重启tomcat了,输入 ,访问正常。

二、测试添加、删除、更新方法。

1、student_post方法,添加一个Student,成功后返回新建studentId为2的对象。

public void student_post(){

try {

Form queryForm = new Form();

queryForm.add("name","steven_spring");

queryForm.add("clsId","201002");

queryForm.add("sex","2");

queryForm.add("age","12");

ClientResource client = new ClientResource("");

Representation representation =client.post(queryForm.getWebRepresentation());

System.out.println(representation.getText());

} catch (Exception e) {

e.printStackTrace();

}

}

访问

访问 ,可以看到有2个Student对象。

2、student_delete方法,删除Id为1的Student,成功执行后返回1。

public void student_delete(){

try {

ClientResource client = new ClientResource("");

Representation representation =client.delete();

System.out.println(representation.getText());

} catch (Exception e) {

e.printStackTrace();

}

}

再次访问,可以看到只有一个Id为2的Student对象。

3、student_put方法,更新Id为2的Student。

public void student_put(){

try {

Form queryForm = new Form();

queryForm.add("name","steven_spring_modify");

queryForm.add("clsId","201012");

queryForm.add("sex","12");

queryForm.add("age","24");

ClientResource client = new ClientResource("");

Representation representation =client.put(queryForm);

System.out.println(representation.getText());

} catch (Exception e) {

e.printStackTrace();

}

}

访问

通过上面的代码已经完全实现了Spring中的restlet的配置。上面只对Student对象做了介绍,你也可以实现对Course在spring中配置,基本方法一样。这里不再阐述。

关于restletjava的信息

用JAVA作APP后端,一般用什么web service?用什么restful框架

WebService 有两个标准:

JAX-WS

也就是传统的基于 SOAP 协议的 WebService. 可以基于多种协议(HTTP、TCP 等),一般使用 CXF 或 Axis2 来进行开发。

JAX-RS

这就是 Restful 风格的 WebService,限定于 HTTP 协议,一般使用 Restlet 或者 Jersey 来进行开发,SpringMVC 也提供了原生的支持(但 Spring MVC 目前并没有实现 JAX-RS,也不打算实现)

如何在Java中 提供 RESTful Web 服务

通过REST风格体系架构,请求和响应都是基于资源表示的传输来构建的。资源是通过全局ID来标识的,这些ID一般使用的是一个统一资源标识符(URI)。客户端应用使用HTTP方法(如,GET、POST、PUT或DELETE)来操作一个或多个资源。通常,GET是用于获取或列出一个或多个资源,POST用于创建,PUT用于更新或替换,而DELETE则用于删除资源。

例如,GET http //host/context/employees/12345将获取ID为12345的员工的表示。这个响应表示可以是包含详细的员工信息的XML或ATOM,或者是具有更好UI的JSP/HTML页面。您看到哪种表示方式取决于服务器端实现和您的客户端请求的MIME类型。

RESTful Web Service是一个使用HTTP和REST原理实现的Web Service。通常,一个RESTful Web Service将定义基本资源URI、它所支持的表示/响应MIME,以及它所支持的操作。

本文将介绍如何使用Spring创建Java实现的服务器端RESTful Web Services。这个例子将使用浏览器、curl和Firefox插件RESTClient作为发出请求的客户端。

本文假定您是熟悉REST基本知识的。

Spring 3的REST支持

在Spring框架支持REST之前,人们会使用其他几种实现技术来创建Java RESTful Web Services,如Restlet、RestEasy和Jersey。Jersey是其中最值得注意的,它是JAX-RS(JSR 311)的参考实现。

Spring是一个得到广泛应用的Java EE框架,它在版本3以后就增加了RESTful Web Services开发的支持。虽然,对REST的支持并不是JAX-RS的一种实现,但是它具有比标准定义更多的特性。REST支持被无缝整合到Spring的MVC层,它可以很容易应用到使用Spring构建的应用中。

Spring REST支持的主要特性包括:

注释,如@RequestMapping 和 @PathVariable,支持资源标识和URL映射

ContentNegotiatingViewResolver支持为不同的MIME/内容类型使用不同的表示方式

使用相似的编程模型无缝地整合到原始的 MVC 层

创建一个示例RESTful Web Service

本节中的例子将演示Spring 3环境的创建过程,并创建一个可以部署到Tomcat中的“Hello World”应用。然后我们再完成一个更复杂的应用来了解Spring 3 REST支持的重要概念,如多种MIME类型表示支持和JAXB支持。另外,本文还使用一些代码片断来帮助理解这些概念。

Hello World:使用Spring 3 REST支持

要创建这个例子所使用的开发环境,您需要:

IDE:Eclipse IDE for JEE (v3.4+)

Java SE5 以上

Web 容器:Apache Tomcat 6.0(Jetty或其他容器也可)

Spring 3框架(v3.0.3是本文编写时的最新版本)

其他程序库:JAXB 2、JSTL、commons-logging

在 Eclipse 中创建一个Web应用,然后设置Tomcat 6作为它的运行环境。然后,您需要设置web.xml文件来激活Spring

WebApplicationContext。这个例子将Spring bean配置分成两个文件:rest-servlet.xml 包含与MVC/REST有关的配置,rest-context.xml包含服务级别的配置(如数据源 beans)。清单 1 显示了web.xml中的Spring配置的部分。

清单 1. 在web.xml中激活Spring WebApplicationContext

以下是引用片段:

contextConfigLocation

/WEB-INF/rest-context.xml

!-- This listener will load other application context file in addition to

rest-servlet.xml --

org.springframework.web.context.ContextLoaderListener

rest

org.springframework.web.servlet.DispatcherServlet

1

rest

/service/*

在rest-servlet.xml文件中创建Spring MVC的相关配置(Controller、View、View Resolver)。清单 2 显示了其中最重要的部分。

清单 2. 在rest-servlet.xml文件中创建Spring MVC配置

以下是引用片段:

bean class="org.springframework.web.servlet.mvc.annotation

.DefaultAnnotationHandlerMapping" /

bean class="org.springframework.web.servlet.mvc.annotation

.AnnotationMethodHandlerAdapter" /

bean id="jaxbMarshaller"

class="org.springframework.oxm.jaxb.Jaxb2Marshaller"

dw.spring3.rest.bean.Employee

dw.spring3.rest.bean.EmployeeList

bean id="employees" class=

"org.springframework.web.servlet.view.xml.MarshallingView"

bean id="viewResolver" class=

"org.springframework.web.servlet.view.BeanNameViewResolver" /

上面的代码中:

Component-scan启用对带有Spring注释的类进行自动扫描,在实践中,它将检查控制器类中所定义的@Controller注释。

DefaultAnnotationHanlderMappings和AnnotationMethodHandlerAdapter使用@ReqeustMapping注释的类或函数的beans由Spring处理这个注释将在下一节进行详细介绍。

Jaxb2Mashaller定义使用JAXB 2进行对象XML映射(OXM)的编组器(marshaller)和解组器(unmarshaller )

MashallingView定义一个使用Jaxb2Mashaller的XML表示view

BeanNameViewResolver使用用户指定的bean名称定义一个视图解析器

本例将使用名为“employees”的MarshallingView。

这样就完成了Spring的相关配置。下一步是编写一个控制器来处理用户请求。清单3显示的是控制器类。

restful哪种实现方式性能最好

基于RESTful 的几种实现

1.1. Rails

Ruby on Rails是新兴的敏捷Web开发框架,在动态语言Ruby的支持下,Rails以新鲜的视角告诉我们Web开发是简单而快乐的。Rails对 RESTful Web Service的开发作了极大的封装和简化,这对开发人员来说是一个强大的工具。而且即将发布的Rails 2.0将全面基于REST。

1.2. Axis2

Apache Axis2是传统的Java Web Service框架Axis的下一代版本。从最初的Apache Axis和Apache SOAP到目前的Axis2,经历了大量变革和发展。相对以前的版本,Axis2更灵活、更高效、更简单。作为Java端官方和传统Web Service框架,在REST与SOAP的硝烟弥漫、战火纷飞的状况下,Axis2尝试同时支持SOAP和REST,采用了WSDL2.0中将REST 与Web服务结合的工作成果。

1.3. Django

Django是基于python语言的敏捷Web和Web服务开发框架,它的设计与Rails十分类似,只不过简化和封装稍少一些。

1.4. JSR 311: JAX-RS

JAX-RS(JSR 311,Java API for XML-RESTful Web Services)是基于annotation的实现方式,我们通过annotation的方式把一个java class标注成RESTful web service,并把它的方法标注成HTTP的CRUD。相关的annotation有@path @Produces@GET @POST @DELETE @PUT @PathParam等,对java开发人员在使用起来比较方便。

目前已经有很多现成的实现,比如Jersey Apache CXF JBoss RESTEasy

1.5. 其他支持RESTful的Java框架

Restlet()

Cetia4()

Apache Axis2()

sqlREST()

REST-art()

RESTEasy的性能要好于 Jersey,无论哪种嵌入式JEE容器。

Jersey+Grizzly2和Jersey+Jetty, dropwizard性能差别不大

dropwizard底层实际是Jersey+Jetty,性能结果也和Jersey+Jetty一样

RESTEasy+netty (netty3)的结果并没有优于RESTEasy+undertow.这出乎我的意料,可能CPU和Memory占用上会好一些

RESTEasy+netty4的性能远远低于RESTEasy+netty3,这出乎我的意料。或许因为Netty线程池的改变。

纯netty的性能远远高于其它框架,一方面是由于没有http router的逻辑,另一方面也显示了Netty框架的优秀。如果不是实现很复杂的路由和很多的Service,不妨使用纯Netty实现高性能。

Spring Boot太厚重了,使用Spring MVC的语法,性能只有Jersey的一半。

Vert.x底层使用Netty,可以使用Java 8 Lambda语法,也提供了其它语言的支持,但是性能看起来不是太好,而且随着并发量增大吞吐率也随之下降。

急求解答~关于Restlet集成Spring的问题!

应该没有问题啊!你要不确认一下是否包含org.restlet.ext.spring.SpringComponent,确认包含后你把project clean一下,重新干干净净的再部署一下服务器

关于restletjava和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。