有没有办法创建JAX-RS注释的接口的几种实现?

时间:2018-10-04 07:54:32

标签: java jax-rs wildfly

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

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。

1 个答案:

答案 0 :(得分:-1)

尝试修复终点,您将拥有以下内容:

  • localhost:8080 //第一
  • 本地主机:8080 //秒

接口中有一个“ /”,实现中有一个“ /”...


并且您在以下位置没有端点: 本地主机:8080 / 因此,它总是需要2个参数。

希望这会有所帮助。