2016-05-27 229 views
0
public String pdfReadData() throws Exception 
{ 
String pdfText = null; 
try 
{ 
    driver.get("https://www.....pdf"); 
    driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); 
    URL url= new URL(driver.getCurrentUrl()); 
    BufferedInputStream fileToParse = new BufferedInputStream(url.openStream()); 
    System.out.println("step1"); 
    PDFParser parser= new PDFParser(fileToParse); 
    parser.parse(); 
    COSDocument cosDocument = parser.getDocument(); 
    PDDocument pdDocument = new PDDocument(cosDocument); 
    if(pdDocument.isEncrypted()) 
    { 
     StandardDecryptionMaterial sdm = new StandardDecryptionMaterial(PDF_OWNER_PASSWORD); 
     pdDocument.openProtection(sdm); // org.apache.pdfbox.exceptions.CryptographyException: Error: The supplied password does not match either the owner or user password in the document. 
     //pdDocument.decrypt(objConfigurationFile.PDF_OWNER_PASSWORD)// the same like above 
    } 
    pdfText= new PDFTextStripper().getText(pdDocument); 
    System.out.println("pdf Value" + pdfText); 
    // parser.getPDDocument.close(); 
    //parser. 

    // driver.manage.timeouts.implicitlyWait(100, TimeUnit.SECONDS); 
} 
catch (MalformedURLException e2) 
{ 
    System.err.println("URL string could not be parsed "+e2.getMessage()); 
} 
catch (Exception e) 
{ 

    e.printStackTrace(); 
} 
return pdfText; 
} 

}調用的OpenStream()拋出異常java.net.ConnectException:連接超時:連接

運行在Eclipse這個代碼啓動與PDF文檔的URL,然後給下面的例外。同一套代碼在同一臺機器上運行在scala中。可以弄清楚爲什麼會發生這種情況。

java.net.ConnectException: Connection timed out: connect 
at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
at java.net.PlainSocketImpl.connect(Unknown Source) 
at java.net.SocksSocketImpl.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source) 
at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source) 
at sun.net.NetworkClient.doConnect(Unknown Source) 
at sun.net.www.http.HttpClient.openServer(Unknown Source) 
at sun.net.www.http.HttpClient.openServer(Unknown Source) 
at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source) 
at sun.net.www.protocol.https.HttpsClient.New(Unknown Source) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source) 
at java.net.URL.openStream(Unknown Source) 
at projectSpecificFunctions.ProjectSpecificLayer.pdfReadData(ProjectSpecificLayer.java:229) 
at stepDefinitionAndRunner.rub3810_1.a_MLC_Plum_customer_has_logged_into_MLC_Plum_secure_site(rub3810_1.java:35) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at cucumber.runtime.Utils$1.call(Utils.java:37) 
at cucumber.runtime.Timeout.timeout(Timeout.java:13) 
at cucumber.runtime.Utils.invoke(Utils.java:31) 
at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38) 
at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37) 
at cucumber.runtime.Runtime.runStep(Runtime.java:299) 
at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44) 
at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39) 
at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44) 
at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91) 
at org.junit.runners.Suite.runChild(Suite.java:128) 
at org.junit.runners.Suite.runChild(Suite.java:27) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
at cucumber.runtime.junit.ExamplesRunner.run(ExamplesRunner.java:59) 
at org.junit.runners.Suite.runChild(Suite.java:128) 
at org.junit.runners.Suite.runChild(Suite.java:27) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
at cucumber.runtime.junit.ScenarioOutlineRunner.run(ScenarioOutlineRunner.java:53) 
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63) 
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70) 
at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93) 
at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
at cucumber.api.junit.Cucumber.run(Cucumber.java:98) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) 
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
+1

你是否在一家公司?您可能必須使用代理。如果是,請搜索:java openStream代理。這與PDFBox無關。 –

+0

我已更改標題...雖然您的問題可能是重複的。 –

+0

謝謝Tilman.Yes ..我在一家公司工作。我在系統環境變量中設置了http_proxy和https_proxy。我是否也需要添加其他一些設置? – Sera

回答

0
System.setProperty("https.proxyHost","127.0.0.1"); 
System.setProperty("https.proxyPort","3128"); 

添加此行代碼的代碼之前,上述問題得到了解決。

相關問題