이 처음 도움을 찾고 있습니다. 누군가가 나를 도울 수 있기를 바랍니다.다운로드 한 XSD와 WSDL을 저장하면
빌드 시간을 줄이기 위해 개미 빌드 프로세스를 현지화하는 작업이있었습니다.
이 아이디어는 특정 서비스와 관련된 WSDL을 다운로드하고 로컬로 저장하는 ant 태스크를 작성하는 것과 같습니다. 간단히 말해서,이 작업이 완료되었지만 로컬 파일을 사용하여 서비스를 빌드 할 때 첫 번째로 가져온 XSD에서 '내용이 프롤로그에 허용되지 않습니다'오류가 발생합니다.
포럼을 검색했으며 가장 일반적인 응답은 프롤로그 전에 숨겨진 문자이지만 16 진수 코드를 확인하고 숨겨진 문자는 없습니다.
이
이 원격 버전과 동일 헥스3C3F786D6C2076657273696F6E3D2231
2E302220656E636F64696E673D227574
662D3822207374616E64616C6F6E653D
226E6F223F3E
의 제 XSD 프롤로그
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
프롤로그에게 인 WSDL 프롤로그
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
이다.
다운로드 한 XSD와 WSDL도 저장하는 방법입니다.
private Document convertToXML(String xmlSource) throws Exception {
DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xmlSource)));
return document;
}
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.STANDALONE, "no");
transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
Result output = new StreamResult(new File(filePath));
자세한 정보가 필요하거나 추가 정보가 필요한 경우 알려주십시오.
감사합니다.
좋아요. 파일을 저장하는 방식과 관련이 있어야한다고 생각합니다. 기존 로컬 XSD의 코드를 다운로드 한 버전의 코드로 바꾸었기 때문에 정상적으로 작동했습니다. – bhumphrey
이 링크 확인 - http://stackoverflow.com/questions/3665554/about-saxparseexception-content-is-not-allowed-in-prolog/7023984 – junkiecoder
감사합니다. 실제로 실제로 알아 냈습니다. WSDL에서 모든 스키마를 WSDL과 동일한 폴더에 넣고 schemaLocation을 변경하여 수정하면 곧 "exampleschemas \ example1 \ schema.xsd"라는 WSDL의 schemaLocation이었습니다. – bhumphrey