Mule ESB 学习笔记mule和jersey的整合使用
来源:互联网 发布:电脑编程入门视频教程 编辑:程序博客网 时间:2024/04/29 23:52
1.简单的绑定一个资源请求路径:
Xml代码
1. <service name="helloWorldResource">
2. <inbound>
3. <inbound-endpoint address="http://localhost:63081/" exchange-pattern="request-response"/>
4. </inbound>
5. <jersey:resources>
6. <component class="org.mule.module.jersey.HelloWorldResource"/>
7. </jersey:resources>
8. </service>
Java代码
1. import javax.ws.rs.DELETE;
2. import javax.ws.rs.GET;
3. import javax.ws.rs.HeaderParam;
4. import javax.ws.rs.POST;
5. import javax.ws.rs.Path;
6. import javax.ws.rs.PathParam;
7. import javax.ws.rs.Produces;
8. import javax.ws.rs.QueryParam;
9. import javax.ws.rs.core.Response;
10.
11. import com.easyway.esb.mule.jersey.exception.HelloWorldException;
12.
13. /**
14. * mule和jersey的整合使用
15. * <p>功能描述,该部分必须以中文句号结尾。<p>
16. *
17. * 创建日期 2013-8-23<br>
18. * @author $Author$<br>
19. * @version $Revision$ $Date$
20. * @since 3.0.0
21. */
22. @Path("/helloworld")
23. public class HelloWorldResource
24. {
25. @POST
26. @Produces("text/plain")
27. public String sayHelloWorld()
28. {
29. return "Hello World";
30. }
31.
32. @GET
33. @Produces("application/json")
34. @Path("/sayHelloWithJson/{name}")
35. public HelloBean sayHelloWithJson(@PathParam("name") String name)
36. {
37. HelloBean hello = new HelloBean();
38. hello.setMessage("Hello " + name);
39. return hello;
40. }
41.
42. @DELETE
43. @Produces("text/plain")
44. public String deleteHelloWorld()
45. {
46. return "Hello World Delete";
47. }
48.
49. @GET
50. @Produces("text/plain")
51. @Path("/sayHelloWithUri/{name}")
52. public String sayHelloWithUri(@PathParam("name") String name)
53. {
54. return "Hello " + name;
55. }
56.
57. @GET
58. @Produces("text/plain")
59. @Path("/sayHelloWithHeader")
60. public Response sayHelloWithHeader(@HeaderParam("X-Name") String name)
61. {
62. return Response.status(201).header("X-ResponseName", name).entity("Hello " + name).build();
63. }
64.
65. @GET
66. @Produces("text/plain")
67. @Path("/sayHelloWithQuery")
68. public String sayHelloWithQuery(@QueryParam("name") String name)
69. {
70. return "Hello " + name;
71. }
72.
73. @GET
74. @Produces("text/plain")
75. @Path("/throwException")
76. public String throwException() throws HelloWorldException
77. {
78. throw new HelloWorldException("This is an exception");
79. }
80. }
2.多个资源的请求的并当使用:
Xml代码
1. <flow name="helloWorldResource">
2.
3. <inbound-endpoint address="http://localhost:63081/" />
4.
5. <jersey:resources>
6. <component class="org.mule.module.jersey.HelloWorldResource" />
7. <component class="org.mule.module.jersey.AnotherWorldResource" />
8. </jersey:resources>
9. </flow>
3.针对复杂数据类型的的解析处理
Xml代码
1. <flow name="helloWorldResource">
2. <inbound-endpoint address="http://localhost:63081/" exchange-pattern="request-response"/>
3. <jersey:resources>
4. <component class="com.easyway.esb.mule.jersey.HelloWorldResource"/>
5. <jersey:context-resolver class="com.easyway.esb.mule.jersey.contextresolver.JaxbCustomContextResolver" />
6. </jersey:resources>
7. </flow>
Java代码
1. import javax.ws.rs.ext.ContextResolver;
2. import javax.ws.rs.ext.Provider;
3. import javax.xml.bind.JAXBContext;
4. import javax.xml.bind.JAXBException;
5.
6. import com.easyway.esb.mule.jersey.HelloBean;
7. import com.sun.jersey.api.json.JSONConfiguration;
8. import com.sun.jersey.api.json.JSONJAXBContext;
9.
10. @Provider
11. public class JaxbCustomContextResolver implements ContextResolver<JAXBContext>
12. {
13. protected JAXBContext context;
14.
15. @Override
16. public JAXBContext getContext(Class<?> type)
17. {
18. if (type.equals(HelloBean.class))
19. {
20. if (context == null)
21. {
22. try
23. {
24. context = new JSONJAXBContext(JSONConfiguration.natural().build(), type);
25. }
26. catch (JAXBException e)
27. {
28. // do nothing
29. }
30. }
31. return context;
32. }
33. return null;
34. }
35. }
4.针对REST异常的处理绑定使用
Xml代码
1. <model name="BasicJerseyTest">
2. <service name="helloWorldResource">
3. <inbound>
4. <inbound-endpoint address="http://localhost:63081/" exchange-pattern="request-response"/>
5. </inbound>
6. <jersey:resources>
7. <component class="com.easyway.esb.mule.jersey.HelloWorldResource"/>
8. <jersey:exception-mapper class="com.easyway.esb.mule.jersey.exception.HelloWorldExceptionMapper" />
9. </jersey:resources>
10. </service>
11. </model>
- Mule ESB 学习笔记mule和jersey的整合使用
- Mule ESB 学习笔记
- Mule ESB 学习笔记
- Mule ESB 学习笔记
- Mule ESB 学习笔记
- Mule ESB 学习笔记
- Mule ESB 学习笔记
- Mule ESB 学习笔记
- Mule ESB 学习笔记
- MULE ESB学习笔记
- Mule ESB 学习笔记
- Mule-Esb学习笔记一
- Mule ESB 学习笔记1
- Mule ESB 学习笔记(1)
- Mule ESB 学习笔记(2)
- Mule ESB 学习笔记(3)
- ESB之Mule ESB的使用
- Mule ESB 学习笔记(1)
- [MySQL] MySQL的自动化安装部署
- 程序员赚钱致富的6种方法
- 两圆求交点
- MySQL设置环境变量 Windows XP
- linux内核模块编程常见问题
- Mule ESB 学习笔记mule和jersey的整合使用
- Android中Dialog的使用
- VirtualBox中安装CentOS使得在ssh和外网都能正常链接
- 一些常用的宏定义
- 内存不足:杀死进程还是牺牲子进程
- 解决a different object with the same identifier value was already associated with the session错误
- 在myeclipse中部署tomcat时, 出现错误为:Undefined exploded archive location
- C++可变参数...
- How to write a good bug report? Tips and Tricksa