weblogic 10.x 上开发restful服务
之前已经学习过 利用JAX-RS快速开发RESTful 服务,当时是jboss环境,如果原封不动的迁移到weblogic 10.x 版本,会杯具的发现应用启动失败,需要做些小调整:
项目结构如下:
需要在原来的Rest Service(本文中是MyService.java)外,再包装一层,创建一个Application的子类,本例中是 MyApplication.java,代码如下:
1 package yjmyzz.service; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 import javax.ws.rs.ApplicationPath; 7 import javax.ws.rs.core.Application; 8 9 10 import yjmyzz.service.rest.MyService; 11 12 @ApplicationPath("/rest") 13 public class MyApplication extends Application { 14 15 public Set<Class<?>> getClasses() { 16 Set<Class<?>> s = new HashSet<Class<?>>(); 17 s.add(MyService.class); 18 19 return s; 20 } 21 }
MyApplication
MyService.java的内容如下:(这与在jboss环境中的代码完全相同)
1 package yjmyzz.service.rest; 2 3 import javax.ws.rs.GET; 4 5 import javax.ws.rs.Path; 6 7 import javax.ws.rs.Produces; 8 9 import javax.ws.rs.core.MediaType; 10 import javax.xml.bind.JAXBElement; 11 import javax.xml.namespace.QName; 12 13 @Path("/") 14 public class MyService { 15 16 final String XMLNS_NAMESPACE = "http://yjmyzz.cnblogs.com/rest/service"; 17 final String ROOT_NODE = "root"; 18 19 @GET 20 @Path("/json/hello") 21 @Produces(MediaType.APPLICATION_JSON) 22 public JAXBElement<String> getHelloWorldJSON() { 23 JAXBElement<String> result = new JAXBElement<String>(new QName("", 24 ROOT_NODE), String.class, sayHelloWorld()); 25 return result; 26 } 27 28 @GET 29 @Path("/xml/hello") 30 @Produces(MediaType.APPLICATION_XML) 31 public JAXBElement<String> getHelloWorldXML() { 32 JAXBElement<String> result = new JAXBElement<String>(new QName( 33 XMLNS_NAMESPACE, ROOT_NODE), String.class, sayHelloWorld()); 34 return result; 35 } 36 37 private String sayHelloWorld() { 38 return "Hello JAX-RS-1"; 39 } 40 41 }
MyService
还有一个关键步骤:在webapp/WEB-INF目录下创建web.xml,内容参考如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd " 4 version="2.5"> 5 6 <servlet> 7 <servlet-name>MyService</servlet-name> 8 <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 9 <init-param> 10 <param-name>javax.ws.rs.Application</param-name> 11 <param-value>yjmyzz.service.MyApplication </param-value> 12 </init-param> 13 </servlet> 14 15 <servlet-mapping> 16 <servlet-name>MyService</servlet-name> 17 <url-pattern>/rest/*</url-pattern> 18 </servlet-mapping> 19 20 </web-app>
web.xml
最后附上pom.xml的内容:
1 <?xml version="1.0"?> 2 3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>org.jboss.as.quickstarts</groupId> 8 <artifactId>helloworld-rs</artifactId> 9 <version>7.1.2-SNAPSHOT</version> 10 <packaging>war</packaging> 11 <name>JBoss EAP Quickstart: helloworld-rs</name> 12 <description>JBoss EAP Quickstart: Helloworld using JAX-RS</description> 13 14 <properties> 15 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 16 <version.jboss.maven.plugin>7.4.Final</version.jboss.maven.plugin> 17 <version.jboss.spec.javaee.6.0>3.0.2.Final</version.jboss.spec.javaee.6.0> 18 <version.war.plugin>2.1.1</version.war.plugin> 19 <maven.compiler.target>1.6</maven.compiler.target> 20 <maven.compiler.source>1.6</maven.compiler.source> 21 </properties> 22 23 <dependencyManagement> 24 <dependencies> 25 <dependency> 26 <groupId>org.jboss.spec</groupId> 27 <artifactId>jboss-javaee-6.0</artifactId> 28 <version>${version.jboss.spec.javaee.6.0}</version> 29 <type>pom</type> 30 <scope>import</scope> 31 </dependency> 32 </dependencies> 33 </dependencyManagement> 34 35 <dependencies> 36 <dependency> 37 <groupId>com.sun.jersey</groupId> 38 <artifactId>jersey-bundle</artifactId> 39 <version>1.15</version> 40 </dependency> 41 </dependencies> 42 43 <build> 44 <finalName>${project.artifactId}</finalName> 45 <plugins> 46 <plugin> 47 <artifactId>maven-war-plugin</artifactId> 48 <version>${version.war.plugin}</version> 49 <configuration> 50 <failOnMissingWebXml>true</failOnMissingWebXml> 51 </configuration> 52 </plugin> 53 54 <plugin> 55 <groupId>org.jboss.as.plugins</groupId> 56 <artifactId>jboss-as-maven-plugin</artifactId> 57 <version>${version.jboss.maven.plugin}</version> 58 </plugin> 59 </plugins> 60 </build> 61 62 63 </project>
pom.xml
ok,打完收工!
附示例源码下载:weblogic-rest-helloworld.zip
转载于:https://www.cnblogs.com/yjmyzz/p/rest-jax-rs-weblogic.html
weblogic 10.x 上开发restful服务相关推荐
- cloudfoundry_在Cloudfoundry上部署RESTful服务
cloudfoundry 在本文中,我们将使用Pivotal Cloud Foundry(PCF)开发人员在Cloudfoundry上部署RESTful服务. 由于创建静态Web服务不是本文的一部分, ...
- cxf restful_使用Apache CXF开发RESTful服务
cxf restful 介绍 如您所知,有两种开发Web服务的方法 简单对象访问协议(SOAP) 代表性状态转移(REST) 在继续学习如何使用Apache CXF创建基于REST的Web服务之前,我 ...
- 在Cloudfoundry上部署RESTful服务
在本文中,我们将使用Pivotal Cloud Foundry(PCF)Dev在Cloudfoundry上部署RESTful服务. 由于创建静态Web服务不是本文的一部分,因此我已经创建了employ ...
- 使用Apache CXF开发RESTful服务
介绍 如您所知,有两种开发Web服务的方法 简单对象访问协议(SOAP) 代表性状态转移(REST) 在继续学习如何使用Apache CXF创建基于REST的Web服务之前,我们将了解什么是REST. ...
- 在原有的SSH项目上开发RESTful风格的HTTP接口
最近做一个需求,其中有个节点涉及到需要在传统的SSH项目中开发RESTful风格的HTTP接口,供请求方访问,获取结果,响应处理结果,其开发风格与spring cloud中控制器(controller ...
- java 利用JAX-RS快速开发RESTful 服务
JAX-RS(Java API for RESTful Web Services)同样也是JSR的一部分,详细规范定义见 https://jcp.org/en/jsr/detail?id=311 .从 ...
- cics 服务端配置_使用PHP在CICS上构建RESTful服务
cics 服务端配置 存档日期:2019年5月15日 | 首次发布:2009年4月21日 CICS®TransactionServer®(TS)是功能强大的事务管理器,旨在进行快速,大量的处理. Su ...
- 使用 Struts 2 开发 RESTful 服务
原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-struts2rest/ REST 简介 REST 是英文 Representational S ...
- tomcat 部署 RESTful 服务实例
1.建立简单restfule服务 参考:java 利用JAX-RS快速开发RESTful 服务实例 简单代码: package com.example;import javax.ws.rs.GET; ...
- 基于SpringBoot开发一个Restful服务,实现增删改查功能
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:虚无境 cnblogs.com/xuwujing/p/8260935.html 前言 在去 ...
最新文章
- 关于项目数据库设计--投票系统
- Java 中商业运算必备的精确运算类:BigDecimal
- jmeter中重要组件及其执行顺序
- 低功耗/远距离lora模块:物联网智能家居、抄表多领域应用SX1262芯片方案
- python脚本之家 包的创建和调用_python基础之包的导入和__init__.py的介绍
- 非洲做生意进货渠道_WikiFundi如何帮助非洲人民为维基百科做贡献
- NameError:name ‘xrange’ is not defined
- php正则表达式 什么,php正则表达式是什么?(代码实例)
- Redis学习手册(List数据类型)(转)
- html怎么用excel打开乱码,excel打开是乱码,详细教您excel打开是乱码怎么解决
- 计算机科学的研究方法,计算机科学与技术课题研究的方法论
- 前端H5面试题Js: Javascript 创建对象的几种方式? (必会)
- 测透51汇编 51单片机所有程序(51学习的纪念)
- 【全套资料.zip下载】数电课设-色子骰子模拟电路Multisim仿真设计【Multisim仿真+报告+讲解视频.zip下载】
- magicbook linux系统换w7,荣耀 MagicBook U盘装系统win7教程
- 编程语言Python为什么这么火?
- 一个古典App开发者的DApp开发之路
- Windows部分软件乱码教你快速解决
- 微信小程序-一个跑步app
- Oracle实现按季度划分,并计数
热门文章
- Apache Commons Net 实现 FTP 上传/下载/删除/同步
- linux单用户可以删除文件么,Linux单用户模式详解 及应用场景
- mysql56允许远程连接_mysql允许远程连接的方法
- 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_18-页面查询接口定义-定义接口...
- 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_01-项目概述-功能构架-项目背景...
- 阶段3 1.Mybatis_02.Mybatis入门案例_2.mybatis入门案例中的设计模式分析
- python 弧度与角度互转
- composer 设置代理
- CCBPM 同表单分合流说明
- appserv+win8