Nokogiri::XML::XPath::SyntaxError:정의되지 않은 이름공간 접두사://xmlns:FaultInfo/xmlns:Message

13076 단어 quickeebooks

묘사

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:inblock 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:inxpath' 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:incheck_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:indo_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]쓰기:
나의 조사에서 나는 두 개의 비밀번호를 발견했다.007001006003는 어디에 비치나요?
이것이 바로 나의 추론이다.
007001 => No destination found for given partition key
006003 => General IO error while proxying request

좋은 웹페이지 즐겨찾기