介绍一下环境:

首先需要下载一个jaxrs-ri-2.22.2.zip的包

采用Jdeveloper 12c版本,jdk1.8

WebLogic Server 12.2.1版本

Restful项目建立

在Jdeveloper 12c中建立一个项目,先建立一个application.

建立一个项目.

在项目中建立一个person的类,在建立一个personService类.

代码如下:

Person.java

package restfulproject;

import java.util.Date;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Person {

private Long id;
private String firstname;
private String lastname;
private Date hiredate;
private Long addressId;

public Person() {
super();
}

public void setId(Long id) {
this.id = id;
}

public Long getId() {
return id;
}

public void setFirstname(String firstname) {
this.firstname = firstname;
}

public String getFirstname() {
return firstname;
}

public void setLastname(String lastname) {
this.lastname = lastname;
}

public String getLastname() {
return lastname;
}

public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}

public Date getHiredate() {
return hiredate;
}

public void setAddressId(Long addressId) {
this.addressId = addressId;
}

public Long getAddressId() {
return addressId;
}
}

PersonService

import java.util.ArrayList;
import java.util.Date;import java.util.List;
public class PersonService {

private List<Person> persons;
    private Person person;

public PersonService() {
        super();
        this.persons = new ArrayList<Person>();
        for (long i = 0; i < 10; i++) {
            Person p = new Person();
            p.setId(i);
            p.setFirstname("Firstname " + i);
            p.setLastname("Last " + i);
            p.setHiredate(new Date());
            this.persons.add(p);
        }
        this.person = this.persons.get(0);
    }

 
    public List<Person> getPersons(){
        return this.persons;
    }
 
    public void addPerson(Person person) {
        System.out.println("add person " + person);

if(person != null){
            getPersons().add(person);
        }
    }    public Person getPerson(){
        return person;
    }
}

生成restful Service.

选择consume和product支持的格式

修改代码最后变成:

package restfulproject;

import java.util.ArrayList;
import java.util.Date;import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.PathParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("restfulproject")
@Consumes(value = { "application/json", "application/xml" })
@Produces(value = { "application/json", "application/xml" })
public class PersonService {

private List<Person> persons;
private Person person;

public PersonService() {
super();
this.persons = new ArrayList<Person>();
for (long i = 0; i < 10; i++) {
Person p = new Person();
p.setId(i);
p.setFirstname("Firstname " + i);
p.setLastname("Last " + i);
p.setHiredate(new Date());
this.persons.add(p);
}
this.person = this.persons.get(0);
}

@GET
@Path("/Persons")
public List<Person> getPersons(){
return this.persons;
}

@POST
@Path("/person")

@Consumes(MediaType.APPLICATION_JSON)

public void addPerson(Person person) {

if(person != null){
System.out.println("Enter====");
System.out.println(persons.size());
System.out.println(person.getFirstname());

this.persons.add(person);
System.out.println(persons.size());
System.out.println("Over====");

}

}

@GET
@Path("/person/{userid}")
public Person getPerson(@PathParam("userid") int userid){
List<Person> personlist = this.getPersons();
for(Person user: personlist){
if(user.getId() == userid){
return user;
}
}
return null;
}
}

同时web.xml也加入了内容

<?xml version = '1.0' encoding = 'GBK'?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>

部署

生成部署profile.

选择生成War包

然后部署.

测试

在WebLogic管理控制台上找到部署的url

然后找到WADL地址

通过SOAPUI生成WADL项目,然后运行测试Perons,获取所有的person信息

如果需要得到xml,需要在head中加入Accept=application/xml

getperson/{userid}的测试界面

添加用户

Restful Web Service部署到weblogic 12c的更多相关文章

  1. Building a RESTful Web Service Using Spring Boot In Eclipse

    一.构建restful web service 创建Maven的java web工程,maven的pom文件加入依赖包 创建包hello Greeting.java package hello; pu ...

  2. Apache CXF实现Web Service(4)——Tomcat容器和Spring实现JAX-RS(RESTful) web service

    准备 我们仍然使用 Apache CXF实现Web Service(2)——不借助重量级Web容器和Spring实现一个纯的JAX-RS(RESTful) web service 中的代码作为基础,并 ...

  3. 【转】Spring 4.x实现Restful web service

    http://my.oschina.net/yuyidi/blog/352909 首先我们还是跟之前一样,创建一个maven项目,不过因为Spring Restful web service是基于Sp ...

  4. 构建一个基于 Spring 的 RESTful Web Service

    本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://loc ...

  5. 在GlassFish应用服务器上创建并运行你的第一个Restful Web Service【翻译】

    前言 本人一直开发Android应用,目前Android就业形势恶劣,甚至会一路下滑,因此决定学习服务器开发.采用的语言是java,IDE是Intellij,在下载Intellij的同时看到官网很多优 ...

  6. Java Restful Web Service 学习指南

    Restful是一种架构style,目前常说的有restful web service, resultful http.现在热搜榜的微服务,大多数会采用Restful方式. JAX-RS 作为一个Re ...

  7. 译:3.消费一个RESTful Web Service

    这节课我们根据官网教程学习如何去消费(调用)一个 RESTful Web Service . 原文链接 https://spring.io/guides/gs/consuming-rest/ 本指南将 ...

  8. 如何使用 JMeter 调用你的 Restful Web Service?进行简单的压力测试和自动化测试

    表述性状态传输(REST)作为对基于 SOAP 和 Web 服务描述语言(WSDL)的 Web 服务的简单替代,在 Web 开发上得到了广泛的接受.能够充分证明这点的是主流 Web 2.0 服务提供商 ...

  9. RESTful Web Service实战 小结1

    1 REST的基本实现形式HTTP+URI+XML,但不是唯一形式.XML后来被Json格式替代.REST是一中架构风格(Representational State Transfer,表述性状态转移 ...

随机推荐

  1. swift中的尾随闭包的用法

    尾随闭包就是这个函数的最后一个参数是一个闭包,所以规定这个闭包既可以写在函数的参数括号里面,也可以直接放在最后面来使用,就像重新给这个函数定义了一次一样,有些怪,不过用的时候,可以把闭包写在外面的.这 ...

  2. [bzoj4515][Sdoi2016]游戏-树链剖分+李超线段树

    Brief Description Alice 和 Bob 在玩一个游戏. 游戏在一棵有 n 个点的树上进行.最初,每个点上都只有一个数字,那个数字是 123456789123456789. 有时,A ...

  3. mongo语法和mysql语法对比学习

    我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. mongodb与mysql命令对比 关系型数据库一般是由数据库(datab ...

  4. [Leetcode Week10]Minimum Time Difference

    Minimum Time Difference 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/minimum-time-difference/desc ...

  5. 【计算机网络】wireshark抓包分析2

    在分析1中,大概的看到了一个包中的信息.这里,看看这些包究竟在做什么 这是我的电脑跟某个网站交互的前4个包. 其中前三个包可以明显看出是TCP的三次握手. 那么,问题来了: 为什么第三个包的长度比前两 ...

  6. ros bashrc 无法source setup.sh

    不知道什么时候开始的,莫名其妙首先是QT闪退,无法找到头文件,然后命令行进去catkin无法提示catkin_make 手动source之后就好了 问题出现在bashrc中source失败了 所以检查 ...

  7. 关于MYSQL表记录字段换行符回车符处理

    http://hualong.iteye.com/blog/1933023 今天遇到一个非常奇葩的问题,数据库表中明明有值却查询不不出来,而然一次从单元格中复制到sql中,发现右侧单引号换行了,我初步 ...

  8. Vmware esxi开启snmp服务

    https://jingyan.baidu.com/article/9f7e7ec055c4c86f28155435.html http://pubs.vmware.com/vsphere-50/in ...

  9. AC日记——曼哈顿交易 洛谷 P3730

    曼哈顿交易 思路: 都是套路: 代码: #include <cmath> #include <cstdio> #include <cstring> #include ...

  10. 在Ubuntu 16.04安装 Let’s Encrypt并配置ssl

    1.安装前准备 1)要确保python的默认版本为2.7及以上版本. 2)需要配置的apache.nginx需要提前配置绑定域名. 2.安装ssl 在这个https://certbot.eff.org ...