.NET 웹 서비스 클라이언트에 대한 인터페이스를 생성하는 데 CXF를 사용하고 있습니다. 나는 클라이언트를 사용할 때, 때때로, 나는 오류 얻을 : 온라인 많은 다른 소스에서XML 1.1 응답을 읽도록 CXF 웹 서비스 클라이언트 구성
WARNING: Interceptor for {http://xxxxxx.com}ChangeRequestWebService#{http://xxxxxx.com/ChangeRequestWebService}GetChangeRequestById has thrown exception, unwinding now
[com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x1b
at [row,col {unknown-source}]: [76,44]
을, 내 CXF 클라이언트가 있음을 읽는 동안 웹 서비스는 XML 1.1에서의 응답을 인코딩 때문에이 것을 분명 XML 1.0을 기대하는 응답과 특수 문자 0x1b는 XML 1.0에서 불법입니다. 이제는 .NET 서비스 인 이이 응답에서 XML 1.1을 사용해야하는지에 대해 논쟁하고 싶지 않습니다. WSDL이 분명히 1.0 일 때 (이것이 스펙이므로). 나는 그들이 보낸 내용을 오류없이 읽을 수 있기를 원한다.
CXF 클라이언트의 종속성을 살펴보면 해당 사이트에서 Woodstox 4.1.1을 사용하여 XML 1.1을 명확하게 지원합니다. 내가 알고 싶은 것은, 응답을받을 때 XML 1.1 파서를 사용하기 위해 CXF 클라이언트 (wsdl2java 바인딩시 또는 런타임 중)를 구성하는 방법이 있습니까? 내가 아는 사람들은 1.1을 사용해서는 안되며, 서버 측 필터를 사용해서는 안된다는 것입니다. 서버로 다시 데이터를 보내야하므로 클라이언트 쪽 문자를 필터링 할 수 없으므로 유효성 검사가 실패합니다.
.NET 서비스가 XML 1.1을 사용하고 있다고 명시 할 수는 있지만 서비스를 제어하지 못하기 때문에 문제를 파악하는 것이 더욱 번거로울 수 있습니다. 그들을 위해 그것을 고칠 것을 제안합니다. 또한 전송중인 데이터는 DB에 있으므로 XML 1.1 전용 문자가있는 것은 웹 서비스의 잘못이 아닙니다.