3
デフォルトでは、Toggle管理コンソールはアプリケーションポート(server.port
プロパティで設定)で動作します。 management.port
に公開したいと思います。私の質問:それは可能ですか?Toggle管理コンソールをSpringで起動管理ポート
デフォルトでは、Toggle管理コンソールはアプリケーションポート(server.port
プロパティで設定)で動作します。 management.port
に公開したいと思います。私の質問:それは可能ですか?Toggle管理コンソールをSpringで起動管理ポート
Togglz> = 2.4.0を使用すると、この機能はそのまま使用できます。古いリリースソリューションの
は以下の通りです:私はMvcEndpoint
とそれを包むことにより、management.port
に生のサーブレットを公開するために管理
。 (HystrixStreamEndpointで例えば)あなたのためのすべての仕事をして春クラウドモジュールを使用するためにそれを行うには 最も簡単な方法:
public class HystrixStreamEndpoint extends ServletWrappingEndpoint {
public HystrixStreamEndpoint() {
super(HystrixMetricsStreamServlet.class, "hystrixStream", "/hystrix.stream",
true, true);
}
}
パスの原因に関係するもう一つのハックは残念ながらありTogglzConsoleServlet
の場合将来の訪問者のための
@Component
class TogglzConsoleEndpoint implements MvcEndpoint {
private static final String ADMIN_CONSOLE_URL = "/togglz-console";
private final TogglzConsoleServlet togglzConsoleServlet;
@Autowired
TogglzConsoleEndpoint(final ServletContext servletContext) throws ServletException {
this.togglzConsoleServlet = new TogglzConsoleServlet();
togglzConsoleServlet.init(new DelegatingServletConfig(servletContext));
}
@Override
public String getPath() {
return ADMIN_CONSOLE_URL;
}
@Override
public boolean isSensitive() {
return true;
}
@Override
public Class<? extends Endpoint> getEndpointType() {
return null;
}
@RequestMapping("**")
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpServletRequestWrapper requestWrapper = new HttpServletRequestWrapper(request) {
@Override
public String getServletPath() {
return ADMIN_CONSOLE_URL;
}
};
togglzConsoleServlet.service(requestWrapper, response);
return null;
}
private class DelegatingServletConfig implements ServletConfig {
private final ServletContext servletContext;
DelegatingServletConfig(final ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
public String getServletName() {
return TogglzConsoleEndpoint.this.togglzConsoleServlet.getServletName();
}
@Override
public ServletContext getServletContext() {
return servletContext;
}
@Override
public String getInitParameter(final String name) {
return servletContext.getInitParameter(name);
}
@Override
public Enumeration<String> getInitParameterNames() {
return servletContext.getInitParameterNames();
}
}
}
:やり方には、ソリューション全体が少し醜い少し見えますので、リクエストURIからプレフィックスを抽出し、これが実装されました:https://github.com/togglz/togglz/issues/190 '2.4.0' RCで利用可能になります – justderb