Java 其余返回Vaadin';将HTML替换为字符串
我正在尝试将REST集成到我的Vaadin 8应用程序中。我得到的是来自客户端请求的Vaadin HTML响应,而不是字符串。我通过Maven使用Java 其余返回Vaadin';将HTML替换为字符串,java,rest,vaadin,Java,Rest,Vaadin,我正在尝试将REST集成到我的Vaadin 8应用程序中。我得到的是来自客户端请求的Vaadin HTML响应,而不是字符串。我通过Maven使用jetty:run。问题是什么 客户端: Client client = ClientBuilder.newClient(); WebTarget target = client.target("http://localhost:8080/api/rest/hello"); Response resp
jetty:run
。问题是什么
客户端:
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:8080/api/rest/hello");
Response response = target.request().get();
String value = response.readEntity(String.class);
System.out.println("Response: " + value);
@WebServlet(urlPatterns = {"/api/*", "/VAADIN/*"}, asyncSupported = true)
@VaadinServletConfiguration(closeIdleSessions = true, ui = ApiUI.class, productionMode = false)
public static class ApiUIServlet extends VaadinServlet { ...
UI类:
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:8080/api/rest/hello");
Response response = target.request().get();
String value = response.readEntity(String.class);
System.out.println("Response: " + value);
@WebServlet(urlPatterns = {"/api/*", "/VAADIN/*"}, asyncSupported = true)
@VaadinServletConfiguration(closeIdleSessions = true, ui = ApiUI.class, productionMode = false)
public static class ApiUIServlet extends VaadinServlet { ...
Stackoverflow不允许我发布更多代码。以下是附加类:Here
@WebServlet(urlPatterns={/api/*”,“/VAADIN/*”},asyncSupported=true)
看起来您正在将VaadinServlet配置为URL/api/*
,这意味着VAADIN servlet将接管所有到达localhost:8080/api的请求,无论它们来自浏览器还是REST请求。相反,您应该将VaadinServlet配置为例如/ui/*
,并对REST请求使用/api/*
。@ollitietavainen感谢您的回复。那么我的代码应该是这个吗@WebServlet(urlPatterns={/ui/*”,“/api/*”},asyncSupported=true)
否,您应该仅在您的VaadinServlet上具有“/ui/*”和“/VAADIN/*”url模式。“/api/*”不应由VaadinServlet处理,VaadinServlet应仅为Vaadin UI服务。让另一个非Vaadin servlet处理“/api/*”@ollitietavainen谢谢!在你的指导下,我自己花了一些时间来解决这个问题。我现在使用了一个httpservlet和doPost
方法来处理我的api。但是有一个问题,如果我想为不同的POST
调用使用不同的api端点,那么我会为每个调用使用单独的servlet吗?像@WebServlet(“/api/p1”)
和@WebServlet(“/api/p2”)
?再次感谢。我认为您可以拥有一个“RESTAPI”servlet,该servlet具有到不同端点的不同URL映射。对端点进行版本控制是个好主意;看看