网站首页 > 文章中心 > 其它

restjava代码

作者:小编 更新时间:2023-10-23 13:10:42 浏览量:305人看过

如何实现支持REST的Java Business Services

下图显示了示例实现中的类.蓝色所示的类是框架外部的类,将它们放今天这一节是为了展示与框架的结构关系.

restjava代码-图1

配置文件

配置文件 "rest-services-config.xml" 包含 REST 服务表示形式和相应的Java Action之间的映射,如下:

清单 1. REST 服务配置

以下是引用片段:

xml version="1.0" ?

rest-config

rest-api id="CreateUserProfile" uri="/Registration/CreateUser" method="POST"

?handler id="RegAction" class="ws.registration.restactions.CreateProfile"/

/rest-api

rest-api id="GetUserProfile" uri="/Registration/GetUser" method="GET"

?handler id="RegAction" class=" ws.registration.restactions.GetProfile"/

restjava代码-图2

...

/rest-config

在该示例实现中,XML Binding服务实现在"rl-config.xml"文件中配置的框架配置文件如下所示.通过修改此文件实现的任何自定义实现都可以接入,只要实现了XMLBindingService接口.

# XML Binding Implementation Service

# Default implementation

ws.rest.xmlbinding.service.impl=ws.rest.xmlbinding.service.impl.XMLEncDecServiceImpl

Controller Servlet

RESTServiceServlet在web.xml中配置,处理所有具有上下文路径的请求,其中上下文路径的web-app/restservices/*如下所示:

servlet

description/description

servlet-nameRESTServletService/servlet-name

servlet-classws.rest.servlet.RESTServiceServlet/servlet-class

/servlet

servlet-mapping

url-pattern/restservices/*/url-pattern

/servlet-mapping

REST Action

public class GetProfile implements ActionInterface {

public void doExecute(ActionContext context) throws Exception {

// Get the value from URL path

String userName = context.getPathInputs().get(0);

// Invoke backend service to retrieve user profile

UserProfileBean bean = getUser(userName);

// Serialize the bean using framework service and send response

restjava代码-图3

String xml = context.getXMLBindingService().serialize(bean);

// Use the ActionContext to generate XML and

context.sendResponse(response, xml);

}

动作类负责使用超类中的XMLBindingService以XML形式生成输出.请查看示例实现的ws.registration.restactions.GetProfile类.ActionContext还可以提供协议特定的HttpServletRequest和HttpServletResponse对象,以防需要自定义处理.它还提供了Path值和URL参数.

XML Binding

该代码示例提供了一个Java XML Binding的实现,该实现使用java.beans.XMLEncoder和java.beans.XMLDecoder类.XML Binding服务实现接受一个JavaBean对象,并将其转换为上述Encoder和Decoder相应的XML表示形式.如果需要JAXB实现,那么可以开发一个实现 ws.rest.xmlbinding.service.XMLBindingService接口的实现类.

执行示例服务

成功部署该应用程序之后,在浏览器中输入URL:

该页面调用REST服务

POST url-prefix/Registration/CreateProfile

您可以修改在 string/string 标记中指定的XML值.

注意:请注意XML结构依赖于JavaBean对象和Java使用的XML序列化技术.

提交时,动作类显示成功消息,表示后端服务的调用.可以查看 ws_log.log 文件调试消息.

类似地,实现示例GET url-prefix/Registration/GetProfile/{username}服务以检索配置文件,如下图所示:

java 调用 rest 接口 怎么写请求行的信息

package com.demo;

import jaimg id="selectsearch-icon" src="" alt="搜索"va.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import javax.xml.bind.DatatypeConverter;

import org.apache.http.HttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.DefaultHttpClient;

public class restTest {

public static voidmain(String[] args) {

try {

DefaultHttpClient Client = newDefaultHttpClient();

HttpGet httpGet = newHttpGet("你的地址");

httpGet.setHeader("Authorization", "Basic " +encoding);

HttpResponse response = Client.execute(httpGet);

System.out.println("response =" + response);

BufferedReader breader = newBufferedReader(new InputStreamReader(response.getEntity().getContent()));

StringBuilder responseString = newStringBuilder();

String line = "";

while ((line = breader.readLine()) !=null) {

responseString.append(line);

breader.close();

String repsonseStr =responseString.toString();

System.out.println("repsonseStr =" + repsonseStr);

} catch (IOException e) {

e.printStackTrace();

怎样用JAVA代码实现一个REST服务端

不过不要高兴太早,jersey只是一个restful的api,不是rest的,要实现rest非常复杂,因为涉及到了超文本驱动这个.

以上就是土嘎嘎小编为大家整理的restjava代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章