ITPub博客

首页 > IT职业 > IT生活 > weblogic 10.x 上开发restful服务

weblogic 10.x 上开发restful服务

IT生活 作者:xduu 时间:2021-09-09 09:14:17 0 删除 编辑

之前已经学习过 利用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> getClasses() {
16         Set> s = new HashSet>();
17         s.add(MyService.class);
18         
19         return s;
20     }
21 }

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 getHelloWorldJSON() {
23         JAXBElement result = new JAXBElement(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 getHelloWorldXML() {
32         JAXBElement result = new JAXBElement(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 }

还有一个关键步骤:在webapp/WEB-INF目录下创建web.xml,内容参考如下:

 1 
 2 
 5 
 6     
 7         MyService
 8         com.sun.jersey.spi.container.servlet.ServletContainer
 9         
10             javax.ws.rs.Application
11             yjmyzz.service.MyApplication 
12         
13     
14 
15     
16         MyService
17         /rest/*
18     
19 
20 

最后附上pom.xml的内容:

 1 
 2 
 3 
 5     4.0.0
 6 
 7     org.jboss.as.quickstarts
 8     helloworld-rs
 9     7.1.2-SNAPSHOT
10     war
11     JBoss EAP Quickstart: helloworld-rs
12     JBoss EAP Quickstart: Helloworld using JAX-RS
13 
14     
15         UTF-8
16         7.4.Final
17         3.0.2.Final
18         2.1.1
19         1.6
20         1.6
21     
22 
23     
24         
25             
26                 org.jboss.spec
27                 jboss-javaee-6.0
28                 ${version.jboss.spec.javaee.6.0}
29                 pom
30                 import
31             
32         
33     
34 
35     
36         
37             com.sun.jersey
38             jersey-bundle
39             1.15
40         
41     
42 
43     
44         ${project.artifactId}
45         
46             
47                 maven-war-plugin
48                 ${version.war.plugin}
49                 
50                     true
51                 
52             
53 
54             
55                 org.jboss.as.plugins
56                 jboss-as-maven-plugin
57                 ${version.jboss.maven.plugin}
58             
59         
60     
61 
62 
63 

ok,打完收工!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2195/viewspace-2808828/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: PHP的CI框架
请登录后发表评论 登录
全部评论

注册时间:2019-04-16

  • 博文量
    84
  • 访问量
    999