Rest配置中开启MQ时,path字段失效

This commit is contained in:
Redkale
2020-06-11 10:47:14 +08:00
parent ebd31bc3d3
commit bd1e326404
4 changed files with 42 additions and 5 deletions

View File

@@ -232,7 +232,6 @@ public class NodeHttpServer extends NodeServer {
String prefix0 = restConf.getValue("path", "");
if (!prefix0.isEmpty() && prefix0.charAt(prefix0.length() - 1) == '/') prefix0 = prefix0.substring(0, prefix0.length() - 1);
if (!prefix0.isEmpty() && prefix0.charAt(0) != '/') prefix0 = '/' + prefix0;
final String prefix = prefix0;
final String localThreadName = "[" + Thread.currentThread().getName() + "] ";
final List<AbstractMap.SimpleEntry<String, String[]>> ss = sb == null ? null : new ArrayList<>();
@@ -243,6 +242,8 @@ public class NodeHttpServer extends NodeServer {
if (agent0 == null) throw new RuntimeException("not found " + MessageAgent.class.getSimpleName() + " config for (name=" + mqname + ")");
}
final MessageAgent messageAgent = agent0;
if (messageAgent != null) prefix0 = ""; //开启MQ时,prefix字段失效
final String prefix = prefix0;
final boolean autoload = restConf.getBoolValue("autoload", true);
{ //加载RestService
String userTypeStr = restConf.getValue("usertype");

View File

@@ -39,6 +39,38 @@ public class HttpMessageClient extends MessageClient {
return messageAgent.generateHttpReqTopic(module);
}
public final CompletableFuture<HttpResult<byte[]>> sendMessage(HttpSimpleRequest request) {
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, 0, null, request, true, null);
}
public final CompletableFuture<HttpResult<byte[]>> sendMessage(HttpSimpleRequest request, AtomicLong counter) {
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, 0, null, request, true, counter);
}
public final CompletableFuture<HttpResult<byte[]>> sendMessage(HttpSimpleRequest request, boolean needresp) {
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, 0, null, request, needresp, null);
}
public final CompletableFuture<HttpResult<byte[]>> sendMessage(HttpSimpleRequest request, boolean needresp, AtomicLong counter) {
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, 0, null, request, needresp, counter);
}
public final CompletableFuture<HttpResult<byte[]>> sendMessage(int userid, String groupid, HttpSimpleRequest request) {
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, userid, groupid, request, true, null);
}
public final CompletableFuture<HttpResult<byte[]>> sendMessage(int userid, String groupid, HttpSimpleRequest request, AtomicLong counter) {
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, userid, groupid, request, true, counter);
}
public final CompletableFuture<HttpResult<byte[]>> sendMessage(int userid, String groupid, HttpSimpleRequest request, boolean needresp) {
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, userid, groupid, request, needresp, null);
}
public final CompletableFuture<HttpResult<byte[]>> sendMessage(int userid, String groupid, HttpSimpleRequest request, boolean needresp, AtomicLong counter) {
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, userid, groupid, request, needresp, counter);
}
public final CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, HttpSimpleRequest request) {
return sendMessage(topic, ConvertType.JSON, 0, null, request, true, null);
}

View File

@@ -109,14 +109,18 @@ public class HttpRequest extends Request<HttpContext> {
}
}
public HttpSimpleRequest createSimpleRequest() {
public HttpSimpleRequest createSimpleRequest(String prefix) {
HttpSimpleRequest req = new HttpSimpleRequest();
req.setBody(array.size() == 0 ? null : array.getBytes());
req.setHeaders(headers.isEmpty() ? null : headers);
req.setParams(params.isEmpty() ? null : params);
req.setRemoteAddr(getRemoteAddr());
req.setContentType(getContentType());
req.setRequestURI(this.requestURI);
String uri = this.requestURI;
if (prefix != null && !prefix.isEmpty() && uri.startsWith(prefix)) {
uri = uri.substring(prefix.length());
}
req.setRequestURI(uri);
req.setSessionid(getSessionid(false));
return req;
}