2009-11-10 2 views
2

자동 생성 된 ServiceBindingStub.java를 사용할 때이 오류가 발생합니다. WebService 측은 정상적으로 작동하므로이 오류는 코드에 있어야하지만 코드가 자동 생성되므로 작동하지 않는 이유를 알 수 없습니다. 일부 다른 호출은 정상적으로 작동하지만 이것은 그렇지 않습니다. 이 호출에는 업데이트가 포함되는 반면 다른 작업 호출은 WebService에서 데이터를 가져 오는 중입니다.Axis 1.4 AxisFault 파일 조기 만료

AxisFault 
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException 
faultSubcode: 
faultString: org.xml.sax.SAXParseException: Premature end of file. 
faultActor: 
faultNode: 
faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: Premature end of file. 
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) 
    at javax.xml.parsers.SAXParser.parse(Unknown Source) 
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) 
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) 
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) 
    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) 
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) 
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784) 
    at org.apache.axis.client.Call.invoke(Call.java:2767) 
    at org.apache.axis.client.Call.invoke(Call.java:2443) 
    at org.apache.axis.client.Call.invoke(Call.java:2366) 
    at org.apache.axis.client.Call.invoke(Call.java:1812) 

답변

7

연결하려는 서비스가 SOAP 응답을 반환하지 않지만 일부 텍스트 또는 HTML을 반환 할 때 발생합니다. 브라우저에서 URL을 열거 나 SOAP UI과 같은 SOAP 디버거를 사용하여 서비스에서 반환되는 내용을 확인하십시오.

+0

그것은 반환 : HTTP/1.1 200 OK 날짜 : 2009년 11월 10일 (화) 그리니치 표준시 12시 48분 24초 서버 : 아파치 콘텐츠 길이 : 0 의 Content-Type : text/html과 – newbie

+0

그런 일이 XML에 문제가 있습니다 그것은 돌아온다. XMLSpy와 같은 도구를 사용하여 잘 만들어 졌는지 확인할 수 있습니까? –

+0

오, 실제로 응답 : "Content-Length : 0". XML이 전혀 없습니다. 그게 SAXParseException을 보는 이유라고 생각합니다. 파싱 ​​할 것이 없으므로. –

2

한 번 같은 문제가있었습니다. 필자의 경우에는 태그 (이미지) 사이에 '바이너리 데이터'라는 메시지가 나타납니다. 축은 고정 크기의 버퍼를 사용하여 데이터를 읽었습니다. 일단 버퍼가 가득 차면 방금 진행되어 동기화되지 않았습니다.

실제로 스텁 코드를 단계별로 디버깅하여 xml 파일에서 태그 또는 부품을 찾을 수 있어야합니다. 문제가 쉽게 해결 될 수 있다고 보장 할 수는 없지만 (a) 스텁이 올바르게 생성되지 않았거나 (b) xml 파일이 올바르지 않거나 사용 된 스키마에 대해 유효하지 않다는 힌트를 제공 할 수 있습니다. 스텁을 생성합니다.

행운을 빈다. (내 문제를 해결하지 못했습니다.)

0

Superfilin의 대답에 따라이 문제를 방금 (해결했지만). 결국 문제는 내 deployment.wsdd 파일에서 반환했던 클래스 중 하나에 <beanMapping>을 추가하지 않았다는 것이 밝혀졌습니다. 응답이 그 클래스를 포함 할 때마다, 나는 완전히 빈 메시지 본문을 대신 얻을 것이다.

0

심지어 우리는 똑같은 문제에 직면했습니다. 그러나 내용에는 몇 가지 특수 문자가 있습니다. 우리는 이러한 특수 문자를 제거하고 정상적으로 작동합니다.

관련 문제