首页 > IT职业 > IT生活 > 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> 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 25 6 7 14 15MyService 8com.sun.jersey.spi.container.servlet.ServletContainer 910 13javax.ws.rs.Application 11yjmyzz.service.MyApplication 1216 19 20MyService 17/rest/* 18
最后附上pom.xml的内容:
1 2 35 4.0.0 6 7org.jboss.as.quickstarts 8helloworld-rs 97.1.2-SNAPSHOT 10war 11JBoss EAP Quickstart: helloworld-rs 12JBoss EAP Quickstart: Helloworld using JAX-RS 13 1415 22 23UTF-8 167.4.Final 173.0.2.Final 182.1.1 191.6 201.6 2124 34 3525 3326 32org.jboss.spec 27jboss-javaee-6.0 28${version.jboss.spec.javaee.6.0} 29pom 30import 3136 42 4337 41com.sun.jersey 38jersey-bundle 391.15 4044 61 62 63${project.artifactId} 4546 6047 53 54maven-war-plugin 48${version.war.plugin} 4950 52true 5155 59org.jboss.as.plugins 56jboss-as-maven-plugin 57${version.jboss.maven.plugin} 58
ok,打完收工!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2195/viewspace-2808828/ ,如需转载,请注明出处,否则将追究法律责任。