2016-07-21 4 views
0

WSO2 튜토리얼에 따라 REST API가있는 기존 마이크로 서비스 프로젝트에서 WSO2 API 관리자 1.10.0을 사용하려고합니다.WSO2 APi 관리자 응답 코드 0

응답 헤더와 내 자원에 대한 요청 (GET, POST 및 DELETE) 관리 할 수있는 내 응용 프로그램의 복사 및 구성 AM뿐만 아니라 내 컴퓨터에 설치했지만 나는 항상 "응답 코드 0"을 얻을

{ 
    "error": "no response from server" 
} 

고급 REST 클라이언트를 사용하여 내 응용 프로그램에 문의하려고하면 올바른 결과로 200 개를 얻습니다.

내 API는 전달 된 사용자를 인증하기 위해 헤더 안의 토큰을 사용하므로 인증없이 더미 API를 구현했지만 여전히 동일한 문제가 있습니다.

Google 테스트 서버에서 Cloud 버전을 사용해 보았지만 여전히 동일한 결과를 얻었습니다. 이 가이드는 http://wso2.com/blogs/cloud/video-setting-up-custom-url-for-api-store-and-gateway/이지만 localhost의 문제에 대한 해결책이 될 수 있는지는 알 수 없습니다.

답변

1

마지막으로 문제를 발견했습니다. API 관리자가 일반 텍스트 응답을 허용하지 않고 JSON을 사용하여 응답하면 문제가 해결됩니다.같은 XML 또는 텍스트로 다른 MediaType에 사용

/는 텍스트, (406)를보고 HTML 일반이 오류 0

1

사용자 정의 URL을 WSO2 API Cloud에 설정하면 도움이되지 않습니다. 거기에 다른 목적을 위해. 당신이 할 수있는 두 가지 일이 있습니다.

  1. 클라우드 버전을 진행하는 데 관심이 있다면 도움을받을 수 있습니다. 지원 요청을 보내면 클라우드 팀이 도움을줍니다.

  2. 로컬 인스턴스의 문제를 해결할 수 있습니다. 그렇게 할 때, 우선, 컬을 통해 API를 호출하고 응답을 얻는 지 확인하십시오. 언젠가, 귀하의 API는 잘 작동 할 수 있지만, 어떤 이유로 인해 결과가 API 콘솔에 도달하지 못할 수도 있습니다.

컬이 잘 작동하면

여부, 당신은 인쇄 오류가 있는지 여부를 확인하기 위해 로그를 확인하실 수 있습니다. 기타 질문 :

  1. http 또는 https를 통해 백엔드 서비스를 제공합니까?
  2. https 인 경우 인증서가 CA 서명 된 인증서가 아닌 경우 API 관리자는 핸드 셰이크 중에 실패합니다. 그렇다면 api 관리자에게 cert를 추가해야합니다. client-truststore.jks
  3. 클라우드 시나리오에서 인터넷에서 백엔드에 액세스 할 수 있어야하며 인증서 스토리도 클라우드에 유효해야합니다.
+0

대답 주셔서 감사합니다 반환, 나는 단지이 문제 사이의 관계를 제외 클라우드 버전을 시도하고 내 설치. 덤프 API에 디버그를 삽입했는데 올바른 요청을 받았지만 여전히 클라이언트에 응답이 없습니다. "(60) SSL 인증서 문제 : 로컬 발급자 인증서를 가져올 수 없습니다." localhost 및 http와 https 모두에서 http를 사용하지만 API의 인증서가 유효하지 않습니다. 자체 인증서로 가져 오기를 시도했지만 크롬에서 여전히 안전하지 않은 연결을보고했습니다. –

+0

WSO2 API Cloud에서 컬을 시도하면 인증서에 대해 불평하지 않습니다. 로컬 배포에서 인증서가 CA 서명 인증서가 아니기 때문에 불평합니다. curl을 -k 옵션과 함께 호출하여 제거 할 수 있습니다. 컬 버전의 클라우드 버전에서 얻은 결과는 무엇입니까? –

+0

이제 나머지 클라이언트를 통해 내 리소스에 연결할 수 있지만 "반환 상태 0"오류로 인해 API 관리자의 웹 인터페이스를 사용하여 테스트 할 수 없습니다. 클라우드 버전을 사용하지 않으려는 이유는 API 관리자가 서버에 설치되어야하지만 문제가 계속 발생하기 때문입니다. –

1

swagger 콘솔 (또는 웹 응용 프로그램)을 사용하여 API에 액세스하려고합니까? 이 문제가 발생할 수있는 몇 가지 이유가 있습니다. 하나는 브라우저에 인증서가 설치되지 않았을 수 있습니다.

이 경우 API 관리자 콘솔에 오류 로그가 표시됩니다 (CA와 관련이없는 항목). 먼저 백엔드 URL을 복사 할 수 있습니다 (swagger 콘솔은 요청을 보내는 데 사용한 URL을 보여줍니다). 그리고이를 새 브라우저 창에 붙여넣고 브라우저에 인증서를 설치하십시오.

또한 방화 광과 같은 도구를 사용하여 문제에 대한 아이디어를 얻고 요청을 확인할 수 있습니다. (AM을 연결하지 않으면 오류가 표시됩니다.)

+0

감사합니다. 아마도 내 문제가 잘못된 인증서와 관련이 있습니다. 크롬에 누락 된 인증서를 저장하려고했습니다 (빨간색 잠금 -> 세부 정보 ->보기 인증서 -> 파일 저장). 그런 다음 "신뢰할 수있는 루트 인증서 "그러나 URL은 여전히 ​​안전하지 않습니다. 그걸 어떻게 없앨 수 있니? https://192.168.123.45:9443/.../에서 인증서를 다운로드하면 어떤 차이가 있습니까 (기본적으로 WSO2는 컴퓨터의 IP를 사용합니다). https : // localhost : 9443 /.../? 나는 모두 시도했다 –

+0

중급 인증 기관 및 신뢰할 수있는 루트 인증 기관으로 크롬에서 다운로드 한 인증서 가져 오기, 적절한 토큰 외에 적절한 키로 헤더 매개 변수 "권한 부여"설정 및 고급 레스트 클라이언트에서의 XHR 사용 가능 API 관리자가 제공 한 https URL을 통해 올바른 응답을 얻으려고하지만 WSO2 웹 인터페이스를 사용하여 "서버로부터 응답이 없습니다"라는 메시지가 계속 표시되고 페이지가 여전히 안전하지 않은 것으로보고됩니다. –

+0

WSO2 제품에는 자체 서명 인증서가 제공됩니다. 그것이 URL이 안전하지 않다는 것을 보여주는 이유입니다. CA 서명 인증서를 제품에 추가 할 수 있습니다. http://wso2.com/library/knowledge-base/2011/08/adding-ca-certificate-authority-signed-certificate-wso2-products/을 참조하십시오. –