2011-10-31 2 views
0

HTMLUnit을 사용하여 사이트에 로그인하려고 시도하지만 로그온 세부 정보를 제출할 때마다 막대한 오류가 발생합니다. 나는 작은 조각으로 나의 코드를 깨뜨렸다. 그래서 나는 제출 버튼이 클릭 된 후에 그것이 다른 것이 일어나기 전에있다는 것을 알 수있다. 꽤 느린 사이트이므로 시간이 걸립니다. 로그인 이후에 발생하기 때문에 불행하게도 어떤 모습인지 보여줄 수는 없습니다. 성공적인 로그인에는 몇 번의 리디렉션이 있고, 페이지를 찾을 수없는 오류가 발생하기 때문에 문제의 원인이되는 리디렉션 중 하나라고 가정합니다. 이 특정 페이지는 아니지만 이전에 Chrome에서 문제를 리디렉션했습니다. 이제 Chrome과 IE8 모두 나를 잘로드하고 있습니다. 어떤 조언을 크게 감상 할 수브라우저가 정상적으로 작동 할 때 자바가 HtmlUnit 오류를 반환합니다.

SEVERE: Error loading JavaScript from [http://servicedeskmt.det.nsw.edu.au:8090/kinetic/displayPage.jsp/../resources/js/jquery/jquery-1.3.2.js]. 
com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException: 404 /kinetic/resources/js/jquery/jquery-1.3.2.js for http://servicedeskmt.det.nsw.edu.au:8090/kinetic/resources/js/jquery/jquery-1.3.2.js 
at com.gargoylesoftware.htmlunit.WebClient.throwFailingHttpStatusCodeExceptionIfNecessary(WebClient.java:535) 
INFO: statusCode=[404] contentType=[text/html] 
Oct 31, 2011 2:31:29 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary 
INFO: <html> 
<head> 
<title>Page cannot be found</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 


</head> 

<body bgcolor="#FFFFFF" text="#000000"> 
<div align="center"> 
    <p>&nbsp;</p> 
    <p>&nbsp;</p> 
    <p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">There was 
    an error on the page you were attempting to reach or the page could not be 
    found.</font></b> <br> 
    </p> 
    <p><br> 
    <br> 
    <a href="http://www.kineticdata.com"><img src="resources/poweredByKS.gif" width="131" height="45" border="0"></a> 
    </p> 
    </div> 
</body> 
</html> 

:

하는 당신에게 전체 스택 트레이스를 저장, 여기에 가장 중요한 물건으로 보이는입니다. 감사합니다. .

편집 : 더 자세한 내용을 추가하십시오. 결과가 새 페이지와 같게 설정되었는지 여부에 관계없이 loginButton.click()에서 오류가 발생합니다. loginButton.click() 인 줄은 긴 멈춤을 일으킨다. (내가 말했듯이, 페이지가로드되는 데 시간이 걸린다.) 그런 다음 오류가 발생한다. 예외를 잡아 내고 로그인 한 페이지를로드하려고 시도하면 동일한 시도가 발생합니다. 이는 로그인 시도가 성공적이라고 알려주지 만 로그인 한 페이지를로드하면 문제가 발생합니다. DefaultCredentialsProvider에 자격 증명을 저장 한 다음 로그인 된 페이지로 바로 이동하면 같은 오류가 발생합니다. 나는 그것이 로그인이 아니라 페이지라고 안전하게 말할 수 있다고 생각합니다.

자바 스크립트를 실행하거나 버튼을 클릭하는 것과 같은 문장으로 페이지를로드하는 것과 같은 효과가 있습니다. 페이지의 다른 부분이 제대로로드되지 않기를 바랬지 만 여전히 원하는 비트를 실행할 수는 있지만 행운은 없습니다.

+0

오류 404 자원 (웹 페이지와 스크립트를) 찾을 수 없습니다 것을 의미했다. HtmlUnit이 8090 포트 번호를 확인하는지 확인하십시오. 세부 정보가 너무 적어서 무엇이 잘못되었는지 알기가 어렵습니다. 그러나 오류에서 어떻게 든 귀하의 웹 페이지에 연결하려고하면 문제가 있음을 나타냅니다. – thotheolh

+0

IE와 Chrome이 정상적으로 작동 할 때 HtmlUnit에서 404 오류가 발생하는 이유가 있습니까? HtmlUnit이 8090을 통지하도록하려면 어떻게해야합니까? 나는 그게 무슨 뜻인지 정말로 모르겠다. 추가 정보가 필요하다면 분명히 로그인하는 페이지의 세부 정보를 제공 할 수 없다는 점을 제외하고는 제공 할 것입니다. 응답 해 주셔서 감사합니다. – user1021379

+0

@ user1021379이 작업을 수행 했습니까? – Kris

답변

2

나는 비슷한 문제가 발생하고 코드 아래 사용하여 작업 가지고

webClient.setThrowExceptionOnFailingStatusCode(false); 
+0

+1 감사합니다,이 나를 위해 일했습니다. – ashes999

4

사용 :

webClient.setThrowExceptionOnFailingStatusCode(false); 
webClient.setThrowExceptionOnScriptError(false); 
관련 문제