可以两个版本的resteasy& jetty加载到同一个JVM中

时间:2014-12-07 05:28:19

标签: rest resteasy

我有一个非常典型的问题。我正在使用内部开发的平台,它使用Jetty服务器,并且很容易提供REST框架的包装。当他们这样做时,他们为某些特定场景做了很多调整。

现在的问题是,当我使用rest的原始接口开发基于REST的服务时,将我的jetty服务器嵌入到同一个JVM中。我的服务可以接收请求,但响应总是500服务器错误。

我觉得内部框架正在拦截做出一些安全验证的响应,所以我的回复没有达到。

我想知道是否有办法使用不同的rest easy版本并在同一个JVM中运行。我试图嵌入一个Jetty服务器并添加了一个普通的Servlet,我可以访问它,但是我无法使用基于其余的servlet实现相同的功能。

任何想法如何在同一个JVM上轻松加载两个版本的休息?

1 个答案:

答案 0 :(得分:0)

您可以拥有的是同一个Web应用程序上下文中的两个应用程序,因为您应该只定义一个实现javax.ws.rs.Application的类。

但是,只要班级生活在不同的ClassLoader中,那就不成问题了。每个Web应用程序上下文must be in isolation of other contexts,每个都定义自己的ClassLoader。

您可以在Jetty中执行各种类加载操作:https://wiki.eclipse.org/Jetty/Reference/Jetty_Classloading

总之,只要在每个Web上下文中使用RESTEasy的不同jar文件,您就应该能够在同一JVM进程中使用不同的RESTEasy版本运行两个REST应用程序。