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

无法在Tomcat中使用HK2部署Jersey

勾岳
2023-03-14

我有一个工作的Jersey JAX-RS应用程序,我刚刚修改了它,以便在一个构造函数中注入一个依赖项。我试图在GlassFish上部署它,但后来我在这里遇到了这个问题。

所以我考虑在Tomcat上尝试一下,因为我认为这是HK2和CDI如何相互冲突的问题,但它在Tomcat上也不起作用,所以当我部署war文件时,我得到了这个错误:

下面是DI的abstractbinder实现:

public class UsersDependencyBinder extends AbstractBinder {    
    private static final Logger LOG = LoggerFactory.getLogger(UsersDependencyBinder.class);

    @Override
    protected void configure() {
        try {
            // Acts as a Singleton
            bind(new UsersDAO(new CachedDbConnector()));
        } catch (ClassNotFoundException e) {
            LOG.error("Error registering the DB Driver Manager", e);
        }
    }
}

我是这样注射的:

private final UsersDAO dao;

@Inject
public UserResource(UsersDAO dao) {
    this.dao = dao;
}

其余的代码以前工作得很好,只是一个ping,它什么也不做,我只是尝试让基础结构工作(服务器响应API调用,数据库启动并运行等等),然后再开始编写代码。

我试着补充:

implementation ("org.glassfish.jersey.bundles:jaxrs-ri:2.27")

但也没有奏效。

共有1个答案

西门嘉澍
2023-03-14

答案其实很简单,但没有很好的文献记载。

我在Windows上本地运行Tomcat,与Windows installer一起安装,它将位于程序文件文件夹中,该文件夹具有普通用户的写保护功能,因此IntelliJ IDEA无法在webapps文件夹中部署我的war文件。

有两种方法可以解决此问题:

  1. webapp文件夹权限更改为允许用户写入。
  2. 更改Tomcat安装中server.xml中的默认webapp文件夹位置。
 类似资料:
  • 这是我的webservice代码。 现在这就是我正在努力做的。 > 内部WEB-INF 4.a.类别/客户/客户。班 4b带有jar的lib文件夹-I.webservices-api.jarII.webservices-extra.jarIII.webservices--extra-api.jarIV.webservices-rt.jarV.webservices-tools.jarVI.mysq

  • 我正在使用Java和Tomcat开发一个API项目。星期五一切都很好,但今天我不能在服务器上部署战争。下面是Tomcat中的堆栈错误: 以下是日志中的错误:

  • 我的ant-script和Tomcat有问题。我想创建一个ant-scipt,它使用Jenkins在我的tomcat-server上构建、编译和部署我的GWT应用程序。为此,我使用来自catalina(catalina-ant.jar)的undeploy and deploy任务。但是我得到了这个错误: 构建失败d:\jenkins\jobs\homepageTomcat\workspace\BU

  • 我已经在archlinux上安装了tomcat,我尝试了tomcat7和Tomcat8。根据包括官方文档在内的多个来源,部署WAR文件就像将其放入webapps文件夹(在我的示例中是/var/lib/tomcat7/webapps)一样容易。WAR文件被分解。但我不知道如何访问我的web应用程序。在localhost:8080上有一个tomcat网页。我还尝试了localhost:8080/nam

  • 我无法使用Tomcat Manager部署war文件 我的\Tomcat\conf\tomcat-users.xml如下所示: 另外,在localhost-config\tomcat-users.xml处编辑\servers\tomcat V7.0服务器,以 注意:我正在重新启动服务器,http://localhost:8080/不工作

  • 我试图将spring boot应用程序部署到外部tomcat,在catalina.log文件中出现如下异常。 war文件名为:com#myapp.war。