我已经更新到Payara 5.191,并且遇到了jersey-proxy-client(球衣版本2.28)的一些问题。行为完全不同。
我尝试将注解(@ Path / @ Produce / @ Consumes)从界面移至植入和向后移。没有任何帮助。
接口
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("booking")
public interface Endpoint {
@GET
@Path("get/{id}")
RR<DTO> getById(@PathParam("id") final Long id);
@POST
@Path("submit")
RR<String> submit(final BlaBlaDto dto);
实施
public class RestImpl implements Endpoint {
@Override
public RR<DTO>> getById(@PathParam("id") final Long id) {
....
}
@Override
@Path("submit")
public RR<String> submit(final BlaBlaDto dto) {
....
}
客户
Configuration configuration = new ResourceConfig().register(JacksonFeature.class);
WebTarget target = ClientBuilder.newClient(configuration)
.target(uri);
Endpoint endpoint = WebResourceFactory.newResource(resourceInterface,
target);
endpoint.getById(...) /// => exception
如果我像示例中那样保持它,我会得到
Servlet javax.ws.rs.core.Application的Servlet.service()抛出异常 java.lang.NoSuchMethodException:找不到合适的构造函数
如果我要将注释移至实现,那么我会得到(与仅移至@Path或同时保留两者都相同)
java.lang.UnsupportedOperationException:不是资源方法。 在org.glassfish.jersey.client.proxy.WebResourceFactory.invoke(WebResourceFactory.java:220)
我该如何解决这个问题?在Payara 5.184.2中一切正常