2009-10-06 4 views
0

IIS로 구성된 servletexec을 사용하여 웹 서비스를 배포 했으므로 익명 계정을 사용하여 webservice에 액세스 할 수 있습니다. 그러나 Windows 통합 인증을 사용할 때 다음 오류가 발생합니다.Axis : faultString : org.xml.sax.SAXParseException : 파일 끝의 조기 말림

- ntlm authentication scheme selected 
- Discarding unexpected response: HTTP/1.1 100 Continue 
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/}hostname:akvm 

org.xml.sax.SAXParseException: Premature end of file. 
    at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) 
    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) 
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) 
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:375) 
    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) 

답변

0

"파일의 조기 종료"는 Xerces에의 SAX 구현에서 유형 오류는 일반적으로 SAX 파서 데이터를 예상, 그러나 아무도 없어 (하지 null을하지만,이 InputSource 빈 초기화)을 나타냅니다. 스택 추적에서 축 SOAP 처리기가 SOAP xml 메시지가 도착할 것으로 기대하지만 메시지가 비어있는 것처럼 보입니다. ISS 및 해당 인프라에 대한 지식이 거의 없습니다. 서버에서 로그 메시지를받을 수 있습니까?

1

Axis 클라이언트가 NTLM 인증 요청을 좋아하지 않는 것처럼 보입니다. 상단에 오류 메시지가 표시 축 당신이 파일의 조기 종료를 얻고있는 이유입니다, 구문 분석에 대한 어떠한 XML이없는

Discarding unexpected response: HTTP/1.1 100 Continue 

후.

축 (1.4)와 NTLM을 사용하려면, 당신은 표준 전송 대신 CommonsHTTPSender를 사용해야합니다 : 당신의 client-config.wsdd 다음을 통해 NTLM 사용자 이름과 암호를 설정에서

<transport name="http" pivot="java:org.apache.axis.transport.http.CommonsHTTPSender"> 
</transport> 

을 개체입니다.