Can't download server.log from gui

Hi,

I’m having trouble downloading server.log-files via the “Administration”-> “Server log”-> “Download” button. Viewing the logfiles (button “Show tail”) works fine, but dowloading gives “Unexpected error NoHttpResponseException: flexhubtest.rooster.nl:443 failed to respond”.

This happens for all logfiles (catalina.out, perfstat.log and our own application logs). After selecting “Download” I have to choose “Remote context hub.cuba” or “hub-core.cuba” (our application is called ‘hub’ instead of ‘app’) . In both cases I get the same error.

    11-01 09:29:33.513 [DEBUG] (BasicHttpClientConnectionManager.java:237) # Get connection for route {}->http://flexhubtest.rooster.nl:443
    11-01 09:29:33.514 [DEBUG] (LoggingManagedHttpClientConnection.java:88) # http-outgoing-14: set socket timeout to 0
    11-01 09:29:33.514 [DEBUG] (MainClientExec.java:234) # Opening connection {}->http://flexhubtest.rooster.nl:443
    11-01 09:29:33.521 [DEBUG] (DefaultHttpClientConnectionOperator.java:139) # Connecting to flexhubtest.rooster.nl/10.2.2.176:443
    11-01 09:29:33.521 [DEBUG] (DefaultHttpClientConnectionOperator.java:146) # Connection established 10.2.2.176:56890<->10.2.2.176:443
    11-01 09:29:33.522 [DEBUG] (MainClientExec.java:255) # Executing request GET /hub-core/remoting/log/flexhub.log?s=121529f8-686c-1c02-aa85-18833037812c&full=true HTTP/1.1
    11-01 09:29:33.522 [DEBUG] (MainClientExec.java:260) # Target auth state: UNCHALLENGED
    11-01 09:29:33.522 [DEBUG] (MainClientExec.java:266) # Proxy auth state: UNCHALLENGED
    11-01 09:29:33.522 [DEBUG] (LoggingManagedHttpClientConnection.java:133) # http-outgoing-14 >> GET /hub-core/remoting/log/flexhub.log?s=121529f8-686c-1c02-aa85-18833037812c&full=true HTTP/1.1
    11-01 09:29:33.522 [DEBUG] (LoggingManagedHttpClientConnection.java:136) # http-outgoing-14 >> Host: flexhubtest.rooster.nl:443
    11-01 09:29:33.522 [DEBUG] (LoggingManagedHttpClientConnection.java:136) # http-outgoing-14 >> Connection: Keep-Alive
    11-01 09:29:33.522 [DEBUG] (LoggingManagedHttpClientConnection.java:136) # http-outgoing-14 >> User-Agent: Apache-HttpClient/4.5.10 (Java/1.8.0_312)
    11-01 09:29:33.522 [DEBUG] (LoggingManagedHttpClientConnection.java:136) # http-outgoing-14 >> Accept-Encoding: gzip,deflate
    11-01 09:29:33.522 [DEBUG] (Wire.java:73) # http-outgoing-14 >> "GET /hub-core/remoting/log/flexhub.log?s=121529f8-686c-1c02-aa85-18833037812c&full=true HTTP/1.1[\r][\n]"
    11-01 09:29:33.522 [DEBUG] (Wire.java:73) # http-outgoing-14 >> "Host: flexhubtest.rooster.nl:443[\r][\n]"
    11-01 09:29:33.523 [DEBUG] (Wire.java:73) # http-outgoing-14 >> "Connection: Keep-Alive[\r][\n]"
    11-01 09:29:33.523 [DEBUG] (Wire.java:73) # http-outgoing-14 >> "User-Agent: Apache-HttpClient/4.5.10 (Java/1.8.0_312)[\r][\n]"
    11-01 09:29:33.523 [DEBUG] (Wire.java:73) # http-outgoing-14 >> "Accept-Encoding: gzip,deflate[\r][\n]"
    11-01 09:29:33.523 [DEBUG] (Wire.java:73) # http-outgoing-14 >> "[\r][\n]"
    11-01 09:29:33.523 [DEBUG] (Wire.java:87) # http-outgoing-14 << "end of stream"
    11-01 09:29:33.523 [DEBUG] (LoggingManagedHttpClientConnection.java:79) # http-outgoing-14: Close connection
    11-01 09:29:33.524 [DEBUG] (LoggingManagedHttpClientConnection.java:96) # http-outgoing-14: Shutdown connection
    11-01 09:29:33.524 [DEBUG] (ConnectionHolder.java:129) # Connection discarded
    11-01 09:29:33.524 [DEBUG] (BasicHttpClientConnectionManager.java:262) # Releasing connection [Not bound]
    11-01 09:29:33.524 [INFO ] (RetryExec.java:97) # I/O exception (org.apache.http.NoHttpResponseException) caught when processing request to {}->http://flexhubtest.rooster.nl:443: The target server failed to respond
    11-01 09:29:33.524 [DEBUG] (RetryExec.java:104) # The target server failed to respond
    org.apache.http.NoHttpResponseException: The target server failed to respond
            at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:141) ~[httpclient-4.5.10.jar:4.5.10]
            at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56) ~[httpclient-4.5.10.jar:4.5.10]
            at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259) ~[httpcore-4.4.12.jar:4.4.12]
            at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163) ~[httpcore-4.4.12.jar:4.4.12]
            at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273) ~[httpcore-4.4.12.jar:4.4.12]
            at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) ~[httpcore-4.4.12.jar:4.4.12]
            at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272) ~[httpclient-4.5.10.jar:4.5.10]
            at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[httpclient-4.5.10.jar:4.5.10]
            at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.10.jar:4.5.10]
            at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.10.jar:4.5.10]
            at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.10.jar:4.5.10]
            at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.10.jar:4.5.10]
            at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) ~[httpclient-4.5.10.jar:4.5.10]
            at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[httpclient-4.5.10.jar:4.5.10]
            at com.haulmont.cuba.web.export.LogDataProvider.provide(LogDataProvider.java:104) ~[cuba-web-7.2.15.jar:7.2.15]
            at com.vaadin.server.StreamResource.getStream(StreamResource.java:143) [vaadin-server-8.9.2-27-cuba.jar:8.9.2-27-cuba]
            at com.haulmont.cuba.web.widgets.CubaFileDownloader.handleConnectorRequest(CubaFileDownloader.java:115) [cuba-web-widgets-7.2.15.jar:?]
            at com.vaadin.server.ConnectorResourceHandler.handleRequest(ConnectorResourceHandler.java:88) [vaadin-server-8.9.2-27-cuba.jar:8.9.2-27-cuba]
            at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1580) [vaadin-server-8.9.2-27-cuba.jar:8.9.2-27-cuba]
            at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:425) [vaadin-server-8.9.2-27-cuba.jar:8.9.2-27-cuba]
            at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:329) [cuba-web-7.2.15.jar:7.2.15]
            at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:215) [cuba-web-7.2.15.jar:7.2.15]
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) [servlet-api.jar:4.0.FR]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [catalina.jar:9.0.39]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.39]
            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-websocket.jar:9.0.39]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.39]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.39]
            at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) [spring-web-5.2.16.RELEASE.jar:5.2.16.RELEASE]
            at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) [spring-web-5.2.16.RELEASE.jar:5.2.16.RELEASE]
            at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:93) [cuba-web-7.2.15.jar:7.2.15]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:9.0.39]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:9.0.39]
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [catalina.jar:9.0.39]
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [catalina.jar:9.0.39]
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [catalina.jar:9.0.39]
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [catalina.jar:9.0.39]
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [catalina.jar:9.0.39]
            at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) [catalina.jar:9.0.39]
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [catalina.jar:9.0.39]
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [catalina.jar:9.0.39]
            at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:432) [tomcat-coyote.jar:9.0.39]
            at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:9.0.39]
            at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-coyote.jar:9.0.39]
            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) [tomcat-coyote.jar:9.0.39]
            at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.39]
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_312]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_312]
            at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.39]
            at java.lang.Thread.run(Thread.java:748) [?:1.8.0_312]
    11-01 09:29:33.524 [INFO ] (RetryExec.java:113) # Retrying request to {}->http://flexhubtest.rooster.nl:443
    11-01 09:29:33.525 [DEBUG] (RequestAddCookies.java:123) # CookieSpec selected: default
    11-01 09:29:33.525 [DEBUG] (RequestAuthCache.java:77) # Auth cache not set in the context

By the way, uploading and dowloading files via “Administration”-> “External files”-> “Create” and “Download” works perfectly.

Hope someone can help me,
kind regards,
Bart

Hi,
When log files are downloaded, there is an intermediate download from app-core or other remote application module (depends on selected JMX connection), to the web module where the Server Log window is opened.

The URL used to make this intermediate download is formed by using this compound property:

cuba.dispatcherBaseUrl=http://${cuba.webHostName}:${cuba.webPort}/${cuba.webContextName}/remoting

This URL should be accessible in the internal network where the web and core modules are located.
So, does your server run 443 port internally? Does your domain name resolve successfully in the internal network?
Note that if you want to specify application URL for external links, usually one modifies cuba.webAppUrl property, not cuba.webHostName / cuba.webPort.

If your server runs only 443 port (HTTPS), then you can try to change the property above to use “https://” instead of the “http://”. Set this property in the local.app.properties of your core module.

1 Like

Hi, Alexander
We have the same related problem to this original post.
We’re following your indications but the property cuba.dispatcherBaseUrl doesn’t appear in Cuba documentation.
Is it does right?
Where this propertie has to be initialized, in web-app.properties?

Thanks in advance
Xavier

Hi,

Yes. It’s an internal property. Most of times it’s not necessary to change, as long as you keep the app server listening http port & protocol, and having cuba.webHostName equal to the host name in the internal network.

I suggest to set this property in the local.app.properties of your core module (not in the project, but during the deployment).

Hi Alexander,

thanks for your help. Using your suggestions fixed the problem. I removed the cuba.webHostName and cuba.webPort entries and replaced them with cuba.webAppUrl.
I did have to specifiy cuba.dispatcherBaseUrl for the downloads to work, but now everything is fine. I used the following:

cuba.webAppUrl=https://<hostname>
cuba.dispatcherBaseUrl=https://<hostname>:443/hub-core/remoting

This made it work.Thanks!

Bart