2010-07-05 2 views
0

XMLRPC에 대한 호출이 있는데,이 XMLRPC는 예외없이 실행되고 출력을 작성하는 Java로 구현되었습니다. 펄의 호출은 다음과 같이 진행됩니다Perl의 XMLRPC :: Lite가 잘못된 파일 설명자입니다.

my $result = XMLRPC::Lite 
    -> proxy($url) 
    -> call("someMethod", 
       SOAP::Data->type(string => $par1), 
       SOAP::Data->type(string => $par2), 
       # etc... 
     ) 
    -> result; 

을하지만 나는 결과를 $ 확인하고이 정의되지 않은, 나는 잘못된 파일 기술자 오류 얻을. 무슨 일이 일어날 수 있습니까? 그것은 이전에 일하고 있었고, 나는 변화했을지도 모르는 중요한 것을 생각할 수 없었습니다 ...

+0

URL이 유효합니까? '$ par1'과'$ par2'가 예상대로 정의되어 있습니까? – Zaid

+0

예, 실제 XMLRPC가 성공적으로 실행 중입니다. 내가 응용 프로그램에 로그를 배치하고 나는 그 POST 처리기 (서블릿 doPost())가 잘 끝나는 것을 알고 있습니다. 따라서 URL 및 매개 변수 문제를 배제 할 수 있습니다. –

답변

0

OK, 나는 그것이 일어난 이유를 꽤 이해하지 못했지만, 그것을 발견했습니다. XMLRPC 응용 프로그램에서이 작업을 수행합니다 : I 출력으로 전송되고, 따라서 나는 Perl 스크립트의 $ 결과 변수에 점점해야하는 결과를 기록하고있어

byte[] result = xServer.execute(request.getInputStream()); 

getLogger().log(new String(result)); 

response.setContentType("text/xml"); 
response.setContentLength(result.length); 
OutputStream out = response.getOutputStream(); 
out.write(result); 
out.flush(); 

getLogger().log("finished doPost"); 

. 결과는 Jdom 라이브러리를 통해 생성 된 XML입니다. 오류가 발생하는 동안 Jimm에 문제가 있음을 나타내는 오류 메시지가 표시되는 XML이 기록되었습니다 (기본적으로 앱은 해당 라이브러리 버전으로 완전히 다시 컴파일되지 않았습니다).

예상 된 XML이 기록되고 Perl에서 $ result에 성공적으로 할당됩니다.

그러나 바이트 배열은 두 경우 모두 XML이기 때문에 호출자와 어떤 차이가 있는지 이해하지 못합니다. 주어진 XML 구조를 찾지도 않았으므로 호출 결과 오류가 발생했습니다.

이것에 대한 통찰력은 인정 될 것입니다. 그러나 문제는 해결됩니다.

관련 문제