Nokogiri::XML::XPath::SyntaxError:정의되지 않은 이름공간 접두사://xmlns:FaultInfo/xmlns:Message
묘사
QuickBooks Online API가 일부 사용자에게 예상치 못한 오류를 반환한 것 같습니다.Nokogiri::XML::XPath::SyntaxError: Undefined namespace prefix: //xmlns:FaultInfo/xmlns:Message
from /app/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.6/lib/nokogiri/xml/node.rb:159:in `evaluate'
from /app/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.6/lib/nokogiri/xml/node.rb:159:in `block in xpath'
from /app/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.6/lib/nokogiri/xml/node.rb:150:in `map'
from /app/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.6/lib/nokogiri/xml/node.rb:150:in `xpath'
from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/service_base.rb:177:in `parse_intuit_error'
from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/service_base.rb:164:in `check_response'
from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/service_base.rb:142:in `do_http'
from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/service_base.rb:129:in `do_http_get'
from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/company_meta_data.rb:13:in `load'
문서에서 지정한 XML 대신 응답(https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0400_QuickBooks_Online/0300_Error_Handling/0050_HTTP_Status_Codes) - HTML 페이지입니다.<html>
<head>
<title>JBoss Web/2.1.12.GA-patch-03 - Error report</title>
<style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style>
</head>
<body>
<h1>HTTP Status 400 - message=No destination found for given partition key; errorCode=007001; statusCode=400</h1>
<HR size="1" noshade="noshade">
<p>
<b>type</b> Status report
</p>
<p>
<b>message</b> <u>message=No destination found for given partition key; errorCode=007001; statusCode=400</u>
</p>
<p>
<b>description</b> <u>The request sent by the client was syntactically incorrect (message=No destination found for given partition key; errorCode=007001; statusCode=400).</u>
</p>
<HR size="1" noshade="noshade">
<h3>JBoss Web/2.1.12.GA-patch-03</h3>
</body>
</html>
예전에 본 사람이 있습니까?Quickeebooks가 그것을 지원해야 하는지 모르겠지만, 몇몇 사용자가 그것을 받았습니다. (모든 API 요청이 실패했습니다.)토론 #1
나도 간헐적으로 본 적이 있다.나는 그것이 Intuit와 관련이 있다는 것을 느꼈다. 이것이 바로 내가 그것을 깊이 연구하지 않은 이유이다. 왜냐하면 그것은 몇 분 후에 정상적으로 일하기 때문이다.다음 HTML 메시지에서 이 줄을 보았습니다.
"클라이언트가 보낸 요청이 문법적으로 올바르지 않습니다(메시지=주어진 섹션 키의 대상을 찾을 수 없습니다;오류 코드=007001;상태 코드=400)"
무슨 뜻인지 모르겠지만 내부 직감 고장 같은데?
2013년 3월 18일 오전 9:05, Matt [email protected]쓰기:
It appears the QuickBooks Online API is returning unexpected fault error for some of our users.
Nokogiri::XML::XPath::SyntaxError: Undefined namespace prefix: //xmlns:FaultInfo/xmlns:Message from /app/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.6/lib/nokogiri/xml/node.rb:159:in
evaluate' from /app/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.6/lib/nokogiri/xml/node.rb:159:in
block in xpath' from /app/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.6/lib/nokogiri/xml/node.rb:150:inmap' from /app/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.6/lib/nokogiri/xml/node.rb:150:in
xpath' from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/service_base.rb:177:inparse_intuit_error' from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/service_base.rb:164:in
check_response' from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/service_base.rb:142:indo_http' from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/service_base.rb:129:in
do_http_get' from /app/vendor/bundle/ruby/1.9.1/bundler/gems/quickeebooks-98d817de7f5a/lib/quickeebooks/online/service/company_meta_data.rb:13:in `load' The response, instead of being XML as specified in the docs (https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0400_QuickBooks_Online/0300_Error_Handling/0050_HTTP_Status_Codes), is a HTML page:JBoss Web/2.1.12.GA-patch-03 - Error report HTTP 상태 400 - 메시지 = 지정된 파티션 키의 대상을 찾을 수 없습니다.오류 코드 = 007001;상태 코드 = 400
type Status report
<b&g t;message message=No destination found for given partition key; errorCode=007001; statusCode=400
description The request sent by the client was syntactically incorrect (message=No destination found for given partition key; errorCode=007001; statusCode=400).
JBoss Web/2.1.12。GA-patch-03
Has anyone seen this before? I'm not sure if it's something Quickeebooks ought to support, but several of our users are getting it (all API requests fail).— Reply to this email directly or view it on GitHub.
토론 #2
Intuit에서 "우리 로그에서 군집 id 오류를 보았습니다."라고 확인했습니다.이것이 무엇을 의미하는지 확실하지는 않지만, 이것은 틀림없이 그들의 잘못이다.나는 단지 우리가 Intuit에서 온 오류 응답을 지원해야 하는지 알고 싶을 뿐이다. 이 오류 응답은 양호한 형식의 XML이 아니다.이 경우 의외의 이상을 일으킬 수 있다.메시지 객체에 HTML을 삽입하는 것이 의미가 있는지 확인하지 못했습니다.토론 #셋
잊어버렸어요. HTTP 응답 코드가 400인가요?기억나세요?만약 그렇다면, 우리는 XML 해석을 시도할 수 없을 뿐만 아니라, 단지 좀 더 우아하게 실패했을 뿐이다.만약 200이 되돌아왔지만, 이 무의미한 HTML이 있다면, 묘사적인 이상을 만들기 위해 HTML을 해석해 보십시오.네?토론 #4
@MattRogish에서 요청에 대한 자세한 정보를 제공할 수 있습니까?URL, 제목, 방법 등, 응답 상태 (HTML 본문의 세부 사항에 따라 400이라고 생각합니다) 와 반송된 제목입니다.토론 #5
이것은 어떠한 요청도 하지 않았는데, 불행하게도 영패는 더 이상 유효하지 않다.intuit에 따르면, 그들의 QuickBooks 온라인 계정은 시험 기간이 만료되었고, 우리가 그들에게 연락했을 때 사용자의 회답을 받지 못했다고 한다.토론 #6
@MattRogish 어제 이 문제를 보았지만 로그를 열지 않아서 자세한 요청 사항을 얻을 수 없습니다.나는 주의할 것이다. 나는 이것이 삭제 요청이라고 믿는다.내가 사용한 기호화폐는 다음 요청 시에도 유효하다.만약 내가 그것이 다시 나타나는 것을 본다면, 나는 더 많은 세부 사항을 회답할 것이다.토론 #7
알겠습니다.응, 우리는 회사의 메타데이터를 얻는 데 실패했어. 매번 실패했어. 어떤 요청(영수증, 고객 등을 얻는 것)도 실패했어.Intuit 지원 부서에 연락했을 때 QuickBooks 온라인 계정 평가판이 기한이 지난 것 같고 CC를 입력하지 않았기 때문에 예상한 행동일 수 있습니다.토론 #8
아, 반갑습니다.나는 너의 이전 게시물에서 이 점을 보았지만, 지금은 이것이 더욱 의미가 있다.토론 #9
Quickeebooks가 이상을 던지지 않고 더 좋은 방식으로 이 문제를 처리할 수 있다면 다행이다. 그러나 적어도 우리 쪽에서는 이례적이어서 나는 그것을 걱정하지 않는다.우리는 단지 이 오류를 포착한 후에 영패를 없애고 사용자에게 다시 연결하라고 통지했을 뿐이다.만약 그것이 간헐적으로 발생한다면, 우리의 방법은 너무 보수적일 것이다.토론 #10
그들은 Stack Overflow에 대한 공식 지지 포럼을 감시하고 있는 것 같다.com, 좋은 입장 요청일 수 있습니다.질문에 "intuit partner platform"을 추가하기만 하면 ->http://stackoverflow.com/questions/tagged/intuit-partner-platform.그러나 XML을 통해 요청할 때 HTML을 영원히 되돌려서는 안 된다는 것에 동의합니다. 이것은 나쁜 방법입니다.토론 #11
마침내 이 문제의 완전한 단서를 찾았고 무엇이 이 문제를 초래했는지 여전히 연구하고 있다.오류 발생: Nokogiri::XML::XPath::SyntaxError
메시지: 정의되지 않은 네임스페이스 접두사://xmlns:FaultInfo/xmlns:Message
오류 위치: QuickeBooks/lib/QuickeBooks/online/service/service base.rb:187:in'parse_intuit_error'
xml = parse_xml(body) # body is the response body when the returned status code is 400 or 500
error = {:message => "", :code => 0, :cause => ""}
fault = xml.xpath("//xmlns:FaultInfo/xmlns:Message")[0] # fails to find the proper namespace
요청/응답 추적:------ New Request ------
METHOD = post
RESOURCE = https://qbo.sbfinance.intuit.com/resource/accounts/v2/327151210
BODY(String) = "PageNum=1&ResultsPerPage=100"
HEADERS = {"Content-Type"=>"application/x-www-form-urlencoded"}
RESPONSE CODE = 400
RESPONSE BODY = <html><head><title>JBoss Web/2.1.12.GA-patch-03 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 400 - message=No destination found for given partition key; errorCode=007001; statusCode=400</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>message=No destination found for given partition key; errorCode=007001; statusCode=400</u></p><p><b>description</b> <u>The request sent by the client was syntactically incorrect (message=No destination found for given partition key; errorCode=007001; statusCode=400).</u></p><HR size="1" noshade="noshade"><h3>JBoss Web/2.1.12.GA-patch-03</h3></body></html>
앞에서 말한 바와 같이, Intuit가 HTML을 보낼 때, 그들은 반드시 XML을 돌려보내야 한다.Nokogiri가 이 문서를 해석하려고 시도하고 있지만 HTML이기 때문에 해석할 수 없습니다.이 문서의 가능한 내용/형식을 알 수 없지만, 표준 자바 오류 페이지이기도 합니다.HTML로 해석하여 문서의 텍스트를 가져오고 오류 세부 정보를 추출할 수 있을 것 같습니다.
주로 이 줄:
message=No destination found for given partition key; errorCode=007001; statusCode=400
사상토론 #12
네, 이건 너무 형편없어요.한편, 나는 우리가 처음부터 받지 말아야 할 모호한 오류를 분석하기 위해 허리를 굽히고 싶지 않다.Nokogiri 오류를 우리ParseError
나 다른 물건으로 포장하거나ThisIsObscureAndYouDidNothingWrongException < StandardError
사용자에게 알려주는 게 어때요?토론 #13
나는 아직 무엇이 나의 오류를 촉발시켰는지 찾아낼 시간이 충분하지 않다. 그러나 이것은 내가 사용자의 신분을 성공적으로 검증한 후 첫 번째 API 호출이다.나는 단지 사용자 계정 아래에서 이 계정들을 꺼내려고 시도했을 뿐이지만, 그것은 항상 실패하기 때문에, 나에게는 우연한 것이 아니다.적어도 XML로 해석할 수 없을 때, 우리는 그것을 구해야 한다. 그리고 그것을 실제 오류로 포장할 수도 있지만, 이 오류에 대한 상세한 정보를 제공해야 할지 확실하지 않다.
토론 #14
작년에 QB와 합작한 이래로 이런 HTML 오류는 줄곧 나를 괴롭힌다.이러한 오류를 더 파헤치는 것은 그들의 JBoss 서버에서 일어난 것이다.오류가 상태 보고서로 표시됩니다.나의 계획은 다른 스크립트가 다른 오류가 아니라 상태 보고 이상에 대해 특정한 오류를 제기하는 것이다.내 구출, 내 말은, 다시 한 번 부탁하는 거야.대부분의 세부 사항은 기존 Quickeebooks 이상 클래스에 비추지만 예외는 하나입니다.제가 알기로는 QBO 문서와 일치하지 않는 오류 코드가 하나 더 있습니다.나는 우리가 나중에 그것을 방문할 수 있도록 그것을 폭로할지도 모른다.
다음은 내 사업부의 링크입니다.
https://github.com/whereisciao/quickeebooks/tree/error-handling-jboss-status-reports
사상
토론 #15
나는 너를 느꼈어--이 잘못이 심각해.너는 어떤 오류 코드가 아무것도 비치지 않은 것을 보았니?
QB 사악한 사건에서의 지속적인 노력에 감사드립니다.
2013년 8월 20일 오후 3:36, 스티븐 주[email protected]쓰기:
나의 조사에서 나는 두 개의 비밀번호를 발견했다.007001와 006003는 어디에 비치나요?
이것이 바로 나의 추론이다.
007001 => No destination found for given partition key
006003 => General IO error while proxying request
Reference
이 문제에 관하여(Nokogiri::XML::XPath::SyntaxError:정의되지 않은 이름공간 접두사://xmlns:FaultInfo/xmlns:Message), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/ruckus/quickeebooks/issues/40텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)