enasequence / sequencetools

Webin sequence validation API.
Apache License 2.0
10 stars 3 forks source link

Connection timeout with embl-api-validator - option to skip or specify proxy? #31

Closed kbseah closed 6 years ago

kbseah commented 6 years ago

Hello,

I'm preparing EMBL flat files and checking them with embl-api-validator-1.1.200. However the validator failed and returned an error, which looks like it was because my workplace network is behind a proxy server. Running the validator on a different network not behind a proxy was successful.

Could there be an option to either pass a proxy address to the validator (either at command line or from environment variable), or to skip a given error check if there is a timeout?

Thank you!

-- Brandon

My command was: java -jar embl-api-validator-1.1.200.jar test3.embl -r

The error message was:

uk.ac.ebi.embl.api.validation.ValidationEngineException: uk.ac.ebi.ena.taxonomy.taxon.TaxonomyException: uk.ac.ebi.ena.taxonomy.taxon.TaxonomyException: Error connecting to url:https://www.ebi.ac.uk/ena/taxonomy/rest/scientific-name/Candidatus%20XXX
    at uk.ac.ebi.embl.api.validation.plan.EmblEntryValidationPlan.execute(EmblEntryValidationPlan.java:118)
    at uk.ac.ebi.embl.api.validation.plan.EmblEntryValidationPlan.execute(EmblEntryValidationPlan.java:141)
    at uk.ac.ebi.embl.api.validation.EnaValidator.validateEntry(EnaValidator.java:994)
    at uk.ac.ebi.embl.api.validation.EnaValidator.validateEntriesInReader(EnaValidator.java:703)
    at uk.ac.ebi.embl.api.validation.EnaValidator.validateFile(EnaValidator.java:508)
    at uk.ac.ebi.embl.api.validation.EnaValidator.validateFiles(EnaValidator.java:343)
    at uk.ac.ebi.embl.api.validation.EnaValidator.main(EnaValidator.java:163)
Caused by: uk.ac.ebi.ena.taxonomy.taxon.TaxonomyException: uk.ac.ebi.ena.taxonomy.taxon.TaxonomyException: Error connecting to url:https://www.ebi.ac.uk/ena/taxonomy/rest/scientific-name/Candidatus%20XXX
    at uk.ac.ebi.ena.taxonomy.client.TaxonomyClientImpl.getTaxonByScientificName(TaxonomyClientImpl.java:82)
    at uk.ac.ebi.ena.taxonomy.client.TaxonomyClientImpl.getSubmittableTaxonByScientificName(TaxonomyClientImpl.java:118)
    at uk.ac.ebi.ena.taxonomy.client.TaxonomyClientCacheImpl.getSubmittableTaxonByScientificName(TaxonomyClientCacheImpl.java:79)
    at uk.ac.ebi.ena.taxonomy.client.TaxonomyClientCacheImpl.getSubmittableTaxonByScientificName(TaxonomyClientCacheImpl.java:79)
    at uk.ac.ebi.embl.api.validation.helper.taxon.TaxonHelperImpl.isOrganismSubmittable(TaxonHelperImpl.java:172)
    at uk.ac.ebi.embl.api.validation.check.sourcefeature.SourceFeatureQualifierCheck.check(SourceFeatureQualifierCheck.java:92)
    at uk.ac.ebi.embl.api.validation.check.sourcefeature.SourceFeatureQualifierCheck.check(SourceFeatureQualifierCheck.java:38)
    at uk.ac.ebi.embl.api.validation.plan.ValidationPlan.execute(ValidationPlan.java:198)
    at uk.ac.ebi.embl.api.validation.plan.EmblEntryValidationPlan.executeChecksandFixes(EmblEntryValidationPlan.java:157)
    at uk.ac.ebi.embl.api.validation.plan.EmblEntryValidationPlan.execute(EmblEntryValidationPlan.java:113)
    ... 6 more
Caused by: uk.ac.ebi.ena.taxonomy.taxon.TaxonomyException: Error connecting to url:https://www.ebi.ac.uk/ena/taxonomy/rest/scientific-name/Candidatus%20XXX
    at uk.ac.ebi.ena.taxonomy.util.JsonUtils.getResponseStream(JsonUtils.java:87)
    at uk.ac.ebi.ena.taxonomy.util.JsonUtils.getJsonArray(JsonUtils.java:48)
    at uk.ac.ebi.ena.taxonomy.util.TaxonUtils.getTaxons(TaxonUtils.java:61)
    at uk.ac.ebi.ena.taxonomy.client.TaxonomyClientImpl.getTaxonByScientificName(TaxonomyClientImpl.java:79)
    ... 15 more
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:673)
    at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1156)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:162)
    at uk.ac.ebi.ena.taxonomy.util.JsonUtils.getResponseStream(JsonUtils.java:76)
    ... 18 more
VALIDATOR FAILING
raskoleinonen commented 6 years ago

Hi,

Apologies if the following is a silly question.

Let's assume that the following URL is hardcoded in the code:

https://www.ebi.ac.uk/XXX

Could you please illustrate the proxy URL you would pass in and how it should affect the URL used by the application?

kbseah commented 6 years ago

Hello,

Thanks for your reply. I don't think that it's possible to pass a proxy address via the URL as you describe.

However, I looked around and it seems to be possible to specify proxy address and port to Java directly (https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html).

The following worked for me: java -Dhttps.proxyHost=X.X.X.X -Dhttps.proxyPort=XXX -jar embl-api-validator-1.1.200.jar test1.embl

Perhaps this could be added to the documentation?

-- Brandon

raskoleinonen commented 6 years ago

Thank you very much Brandon.

I have updated the ENA flat file validator document as suggested: http://ena-docs.readthedocs.io/en/latest/tools_02.html

The old ENA flat file validator page has been deprecated (contains a link to the above URL): https://www.ebi.ac.uk/ena/software/flat-file-validator