【问题标题】:Is there a way to create several implementations of JAX-RS-annotated interface?有没有办法创建 JAX-RS 注释接口的多个实现?
【发布时间】:2019-03-09 13:13:05
【问题描述】:

我已经声明了下一个接口:

public interface IArea {

@GET
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
@Path("/")
Response get(
        @QueryParam("param1") String param1,
        @QueryParam("param2") String param2
);

}

我使用这个接口实现了两个无状态bean:

@Stateless
@Path("/first")
public class FirstController implements IArea {

    public Response get(String param1, String param2) {
        return Response.status(200).build();
    }

}


@Stateless
@Path("/second")
public class SecondController implements IArea {

    public Response get(String param1, String param2) {
        return Response.status(200).build();
    }

}

结果我们在调用两个端点期间出现未知错误:

org.jboss.weld.exceptions.IllegalArgumentException:WELD-001456: 参数 bean 不能为空
在 org.jboss.weld.util.Preconditions.checkArgumentNotNull(Preconditions.java:40) 在 org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:703) 在 org.jboss.weld.util.ForwardingBeanManager.getReference(ForwardingBeanManager.java:64) 在 org.jboss.weld.bean.builtin.BeanManagerProxy.getReference(BeanManagerProxy.java:86) 在 org.jboss.resteasy.cdi.CdiConstructorInjector.construct(CdiConstructorInjector.java:68) 在 org.jboss.resteasy.cdi.CdiConstructorInjector.construct(CdiConstructorInjector.java:73) 在 org.jboss.resteasy.plugins.server.resourcefactory.POJOResourceFactory.createResource(POJOResourceFactory.java:53) 在 org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:312) 在 org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:441) ... 51 更多

如果我实现单个 bean,例如 FirstController,服务器工作正常。

在这两种情况下,“部署”选项卡中的“资源方法”都是正确的。

我们的平台是 Wildfly 12.0.0.Final。 Java EE 8。

【问题讨论】:

  • 我在 WF10(不是 12)+ JEE8 中尝试了您的示例。它工作得很好(并不奇怪,因为您的代码似乎完全正确)。

标签: java jax-rs wildfly


【解决方案1】:

尝试修复终点,你有以下几点:

  • localhost:8080//第一
  • localhost:8080//秒

你有一个来自接口的“/”和一个来自实现的“/”......


而且你没有端点: 本地主机:8080/ 所以它需要 2 个参数(总是)。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 2021-09-24
    • 2011-05-31
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多