当前位置: 首页 > 知识库问答 >
问题:

如何将Jersey与TomEE集成?

闻人凯泽
2023-03-14

我尝试在Tomee 1.5.2 WebProfile中使用jer1.18部署一个非常简单的RESTful Web服务。我的项目完全受到tomee-jersey-eclipselink的启发

我通过删除持久性部分进一步简化的示例:Web 服务只是重新调整“你好,世界!

@Path("/hello")
@RequestScoped
public class HelloService {

    public HelloService() {
    }

    @GET
    public String test() {
        return "Hello, World!";
    }
}

我在POM中的依赖关系:

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.18</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.18</version>
    </dependency>
</dependencies>

我使用与应用程序模型无关的应用程序模型部署我的 Web 服务:

import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;

public class JerseyApplication extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        final Set<Class<?>> classes = new HashSet<Class<?>>();
        classes.add(HelloService.class);
        return classes;
    }
}

这是我的网络.xml:

<web-app>
  <servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>javax.ws.rs.Application</param-name>
      <param-value>org.superbiz.service.JerseyApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

我还在$TOMEE/conf/system.properties中添加了以下属性:

com.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true

汤姆猫 7 一切正常(在本例中,我用 POM 中的 javax.enterprise:cdi-api:1.1 替换了 javax:javaee-api 依赖项),但是当我尝试使用 Tomee 时,我只得到了一个 404 HTTP 状态,没有例外,也没有额外的日志记录消息。

每当我从我的Eclipse IDE或在命令行中使用Maven部署应用程序时,结果都是相同的。

注意:

  • 我不想将东美 JAX-RS 与阿帕奇 CXF 一起使用,也无法升级到托米 1.6。
  • 我已经从这篇文章中尝试了所有可能的方法,这无济于事。

知道吗?

共有1个答案

云慈
2023-03-14

TomEE 1.7.0中解决了一个问题,解决了这个问题。正如本期所述,您还需要在catalina.properties中添加以下行:

openejb.classloader.forced-load=javax.ws.rs

我在新泽西2号的时候就是这么做的。

 类似资料:
  • 我使用springboot和jersey作为restful API。现在我想将swagger2集成到我的项目中,但它不起作用。当我运行我的应用程序并访问http://localhost:8080/swagger-ui.html.我得到了swagger网页,但没有显示api(见下图)。似乎swagger没有找到我的api类。 下面是我添加的依赖项。 以下是我的申请课程: 下面是我的jersey配置类

  • 问题内容: 在详尽搜索了Web和Stackoverflow之后,我仍然坚持尝试找出如何将Jersey所提供的RESTlet风格界面与Jetty相集成的方法。 我的Jetty服务器已经启动并正在运行,因此Jersey也很容易使用,有人知道如何将两者结合在一起吗?任何具体的链接都会有所帮助- 我对servlet编程也很陌生。 问题答案: 我前一段时间使用Jetty和Jersey创建了一个应用程序。它实

  • 我正在使用springbootersey进行web restful实现。现在我要将swagger集成到我们的应用程序中。我做了以下操作。 我添加了以下对build.gradle的依赖: 我能够启动这个web应用程序,但我想知道哪个url是用来招摇的?我试过了http://localhost:8080, http://localhost:8080/swagger和http://localhost:8

  • 我有一组RESTful web服务,通常部署在Glassfish服务器中。问题是,我工作的地方只与Apache一起工作,所以我不得不切换,现在是问题出现的地方。我已经成功地部署了两个RESTful资源,它们工作得很好(它们所做的只是从数据库中检索信息,并在POJO的ArrayList中返回该信息)。 我手动设置了库,甚至下载了该死的JerseyClientBuilder,但这些都不管用。提前谢谢你

  • 目前,我的应用程序使用SpringMVC进行所有控制器映射。我正在尝试实现一个tinyMCE拼写检查,它包括一个Servlet,我不确定如何在不修改该文件本身的情况下正确集成该Servlet。我想避免修改,这样如果我们以后有新版本,我们就可以了。 Servlet看起来像...

  • 问题内容: 有人知道将soapUI测试添加到我的CI版本的好方法吗? 问题答案: soapUI通过Maven或Ant提供测试自动化。在这里描述了Maven集成。 我在一个月前尝试过,但是在eviware存储库中遇到了一些奇怪的问题…因此,我现在通过Ant运行测试。您要做的是在soapUI bin目录中调用(或)脚本。您可以在此处找到可用的参数。 您必须在Hudson构建服务器上安装soapUI。然