java应用程序中的嵌入式jersey
我试图在java应用程序中嵌入jersey服务器,以便可以通过编程控制其启动/停止等。我找到了教程,但它是针对jetty 1.18.1(相当旧)的。在使用最新的jersey版本(2.22.1)时,类、名称空间等似乎发生了很多变化,上面教程中显示的示例不起作用 有人能指出一种在自定义应用程序中嵌入jersey的最新版本的方法吗?我相信这是可行的,但我似乎找不到参考资料、文档、示例或任何东西。正如Gimby所建议的那样,它提供了答案。Jersey可以使用另一个http服务器(如jetty)嵌入到java应用程序中。在我的例子中,我用以下三个步骤构建了一个非常简单的工作示例项目:java应用程序中的嵌入式jersey,java,rest,jersey-2.0,Java,Rest,Jersey 2.0,我试图在java应用程序中嵌入jersey服务器,以便可以通过编程控制其启动/停止等。我找到了教程,但它是针对jetty 1.18.1(相当旧)的。在使用最新的jersey版本(2.22.1)时,类、名称空间等似乎发生了很多变化,上面教程中显示的示例不起作用 有人能指出一种在自定义应用程序中嵌入jersey的最新版本的方法吗?我相信这是可行的,但我似乎找不到参考资料、文档、示例或任何东西。正如Gimby所建议的那样,它提供了答案。Jersey可以使用另一个http服务器(如jetty)嵌入到ja
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<version>2.22.1</version>
</dependency>
import java.io.IOException;
import java.net.URI;
import javax.ws.rs.core.UriBuilder;
import org.eclipse.jetty.server.Server;
import org.glassfish.jersey.jetty.JettyHttpContainerFactory;
import org.glassfish.jersey.server.ResourceConfig;
@SuppressWarnings("restriction")
public class TestingApplicationStartingRESTServerProgrammatically {
public static void main(String[] args) throws Exception {
URI baseUri = UriBuilder.fromUri("http://localhost/").port(9998).build();
ResourceConfig config = new ResourceConfig(CrunchifyAPI.class);
Server server = JettyHttpContainerFactory.createServer(baseUri, config);
server.start();
}
}
如果您想将其嵌入到较低级别的API中,以防您选择将web引擎更改为Netty或Vert.X,那么您必须转到 您需要使用
WebConfig
构建它,并且需要创建自己的HttpServletRequest/Response/Context类实现
您可以通过构建自己的
ApplicationHandler
来降低成本,但在那个阶段,它基本上是一个内部构件。在WebComponent级别,您仍然拥有servlet API,因此更容易构建您需要的内容。jersey用户手册中有大量关于如何在嵌入式服务器上运行的示例;它似乎不再有一个内置的,这是有意义的,因为有很多稳定的服务器可用。你挑吧。非常感谢。您应该将您的评论作为答案发布。这不是答案,我只是告诉您手册确实存在。您好,我在应用程序中使用org.eclipse.jetty版本:“9.1.3.v20140225”和org.glassfish.jersey.bundles版本:“2.7”。你能解释一下你哪里出了问题吗?事实上我现在没问题了。金比给了我解决办法。我试图嵌入jersey服务器,但我错过了他正确提到的文档部分。请将他的评论标记为有用。是否可以用Tomcat而不是Jetty来做这件事?我正在搜索,但找不到等价物。
import java.io.IOException;
import java.net.URI;
import javax.ws.rs.core.UriBuilder;
import org.eclipse.jetty.server.Server;
import org.glassfish.jersey.jetty.JettyHttpContainerFactory;
import org.glassfish.jersey.server.ResourceConfig;
@SuppressWarnings("restriction")
public class TestingApplicationStartingRESTServerProgrammatically {
public static void main(String[] args) throws Exception {
URI baseUri = UriBuilder.fromUri("http://localhost/").port(9998).build();
ResourceConfig config = new ResourceConfig(CrunchifyAPI.class);
Server server = JettyHttpContainerFactory.createServer(baseUri, config);
server.start();
}
}