У меня есть встроенное приложение Tomcat 8.0.xx с настроенными NioEndpoint, Http11NioProtocol, TomcatConnector, SSLContext, Request.Я пытаюсь перейти на встроенный Tomcat 9.0.xx Но настройки очень глубокие и не позволяют мне мигрировать.
Я пытался адаптировать свои классы настройки для работы с новым tomcat.Но я не могу понять, что произошло: в консоли Linux я вижу - порты открыты: 80/443, но когда я делаю простой запрос GET (порт 80) - ответ сервера 404
Это выглядит такненастроенные коннекторы или сервлеты не развернуты.
HTTP connector configuration:
...
Connector connector = new MyTomcatConnector(MyHttp11NioProtocol.class.getName());
connector.setProperty("address", "xxx.xxx.xxx.xxx");
connector.setPort(80);
connector.setRedirectPort(443);
... set addition connector properties(connector);
...
public class MyConnector extends org.apache.catalina.connector.Connector {
...
public MyTomcatConnector(String protocol) throws Exception {
super(protocol);
+ my own logger;
}
...
public MyRequest createRequest() {
my logger
MyRequest request = new MyRequest(this);
return (request);
}
}
public class MyRequest extends org.apache.catalina.connector.Request {
...
public MyRequest(Connector connector) {
super(connector);
+ my own logger;
}
@Override
public Locale getLocale() {
+ my own logger;
Locale locale = super.getLocale();
....
return locale;
}
}
public class MyHttp11NioProtocol extends AbstractHttp11JsseProtocol<NioChannel> {
...
public MyHttp11NioProtocol(){
super(new MyNioEndpoint(HttpInterface.SERVICE));
+ my own logger;
}
...
Copy/paste method from Http11NioProtocol
}
public class MyNioEndpoint extends NioEndpoint implements TLSContextObserver {
protected MySSLContext context;
protected SSLEngine engine;
...
public MyNioEndpoint(String sslContextName) {
super();
...
try {
context = //get instance of my own SSLContext by name (sslContextName);
+ logger
}catch(...)...
}
@Override
protected SSLEngine createSSLEngine(String sniHostName, List<Cipher> clientRequestedCiphers, List<String> clientRequestedApplicationProtocols) {
engine = context.getSSLEngine();
context.addObserver(this);
return engine;
}
}
public class MySSLContext extends AbstractObservable<TLSContextObserver, TLSInterfaceConfig> implements org.apache.tomcat.util.net.SSLContext {
//configuing standart SSLContext (keyManager[], TrusteManager[] ... etc...
}
Я ожидаю увидеть нормальный ответ от сервера через порт 80, но я вижу 404.
Не могли бы вы дать мне совет о том, где«копать»?