BioJava - java.net.ConnectException:连接超时:没有更多信息

问题描述 投票:0回答:1

为什么我会看到错误?

  • PDB_DIR
    设置为
    C:/PDB files

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>bio_java_maven_hello_world</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.biojava</groupId>
            <artifactId>biojava-core</artifactId>
            <version>5.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.biojava</groupId>
            <artifactId>biojava-structure</artifactId>
            <version>5.4.0</version>
        </dependency>
    </dependencies>
</project>

BioJavaPDBHelloWorld.java

package org.example;
import org.biojava.nbio.structure.*;
import org.biojava.nbio.structure.io.PDBFileReader;
public class BioJavaPDBHelloWorld {
    public static void main(String[] args) {
        try {
            PDBFileReader pdbReader = new PDBFileReader();
            // Set the path to the local PDB file directory
            pdbReader.setPath("C:/PDB files");
            // Reading a structure by PDB code
            Structure structure = pdbReader.getStructureById("1lvz"); // Example PDB code
            // Print the PDB ID
            System.out.println("PDB ID: " + structure.getPDBCode());
            // Print the title of the structure
            System.out.println("Title: " + structure.getPDBHeader().getTitle());
            // Print number of atoms in the structure
            System.out.println("ID : " + structure.getId());
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}

输出:

"C:\Program Files\Java\jdk-17.0.2\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.6\lib\idea_rt.jar=53936:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.6\bin" -Dfile.encoding=UTF-8 -classpath C:\git\bio_java_maven_hello_world\target\classes;C:\Users\pc\.m2\repository\org\biojava\biojava-core\5.4.0\biojava-core-5.4.0.jar;C:\Users\pc\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Users\pc\.m2\repository\org\apache\logging\log4j\log4j-slf4j-impl\2.13.1\log4j-slf4j-impl-2.13.1.jar;C:\Users\pc\.m2\repository\org\apache\logging\log4j\log4j-api\2.13.1\log4j-api-2.13.1.jar;C:\Users\pc\.m2\repository\org\apache\logging\log4j\log4j-core\2.13.1\log4j-core-2.13.1.jar;C:\Users\pc\.m2\repository\org\biojava\biojava-structure\5.4.0\biojava-structure-5.4.0.jar;C:\Users\pc\.m2\repository\org\rcsb\ciftools-java\0.7.1\ciftools-java-0.7.1.jar;C:\Users\pc\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\pc\.m2\repository\com\google\code\gson\gson\2.8.5\gson-2.8.5.jar;C:\Users\pc\.m2\repository\org\rcsb\mmtf-api\1.0.9\mmtf-api-1.0.9.jar;C:\Users\pc\.m2\repository\org\rcsb\mmtf-serialization\1.0.9\mmtf-serialization-1.0.9.jar;C:\Users\pc\.m2\repository\org\msgpack\jackson-dataformat-msgpack\0.8.18\jackson-dataformat-msgpack-0.8.18.jar;C:\Users\pc\.m2\repository\org\msgpack\msgpack-core\0.8.18\msgpack-core-0.8.18.jar;C:\Users\pc\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.9.3\jackson-databind-2.9.9.3.jar;C:\Users\pc\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;C:\Users\pc\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.9\jackson-core-2.9.9.jar;C:\Users\pc\.m2\repository\org\rcsb\mmtf-codec\1.0.9\mmtf-codec-1.0.9.jar;C:\Users\pc\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;C:\Users\pc\.m2\repository\org\biojava\biojava-alignment\5.4.0\biojava-alignment-5.4.0.jar;C:\Users\pc\.m2\repository\org\biojava\thirdparty\forester\1.038\forester-1.038.jar;C:\Users\pc\.m2\repository\java3d\vecmath\1.3.1\vecmath-1.3.1.jar;C:\Users\pc\.m2\repository\org\jgrapht\jgrapht-core\1.1.0\jgrapht-core-1.1.0.jar;C:\Users\pc\.m2\repository\javax\xml\bind\jaxb-api\2.3.0\jaxb-api-2.3.0.jar;C:\Users\pc\.m2\repository\com\sun\xml\bind\jaxb-core\2.3.0\jaxb-core-2.3.0.jar;C:\Users\pc\.m2\repository\com\sun\xml\bind\jaxb-impl\2.3.0\jaxb-impl-2.3.0.jar;C:\Users\pc\.m2\repository\javax\activation\activation\1.1.1\activation-1.1.1.jar org.example.BioJavaPDBHelloWorld
20:18:48 [main] WARN  org.biojava.nbio.structure.align.util.UserConfiguration - Could not read dir from system property PDB_DIR or environment variable PDB_DIR, using system's temp directory C:\Users\pc\AppData\Local\Temp\
java.net.ConnectException: Connection timed out: no further information
    at java.base/sun.nio.ch.Net.pollConnect(Native Method)
    at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
    at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:549)
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597)
    at java.base/java.net.Socket.connect(Socket.java:633)
    at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:178)
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:498)
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:603)
    at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:246)
    at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:351)
    at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:373)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1309)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1057)
    at org.biojava.nbio.core.util.FileDownloadUtils.downloadFile(FileDownloadUtils.java:126)
    at org.biojava.nbio.structure.io.LocalPDBDirectory.downloadStructure(LocalPDBDirectory.java:550)
    at org.biojava.nbio.structure.io.LocalPDBDirectory.downloadStructure(LocalPDBDirectory.java:498)
    at org.biojava.nbio.structure.io.LocalPDBDirectory.getInputStream(LocalPDBDirectory.java:353)
    at org.biojava.nbio.structure.io.LocalPDBDirectory.getStructureById(LocalPDBDirectory.java:327)
    at org.example.BioJavaPDBHelloWorld.main(BioJavaPDBHelloWorld.java:16)

Process finished with exit code 0

列表似乎正在尝试从互联网下载文件。

但是,我的列表中没有任何此类声明。

那么,这是怎么回事?我该如何解决这个问题?

java maven biojava
1个回答
0
投票

Stanislav的评论是正确的。

斯坦尼斯拉夫写道,

我猜它需要一个尝试从 ftp.wwpdb.org 下载的数据库?这似乎无法访问。如果您有不同的 PDB 服务器,则可以使用系统变量 PDB.FILE.SERVER 覆盖它。请参阅 LocalPDBDirectory 类中的代码。

您还可以使用以下方法覆盖此行为:
pdbReader.setFetchBehavior(LocalPDBDirectory.FetchBehavior.LOCAL_ONLY);

因此,我将该语句包含在我的代码中以解决该问题。

© www.soinside.com 2019 - 2024. All rights reserved.