2010-02-01 10 views
5
에서 참조 된 스키마를 해결하는 동안 오류가 발생했습니다.

나는 갈라를 eclipse와 Windows xp에서 축 2 1.4를 사용하여 로컬 WSDL 파일에서 프록시 클래스를 생성하려고합니다. 내 문제는 WSDL 내부에서 가져온 스키마로 인해 오류가 발생한다는 것입니다. 내가 명령 다음 WSDL2Java의를 실행하려고했습니다WSDLException :

<xsd:import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="http://www.w3.org/2005/05/xmlmime"/> 

: 라인 그쪽으로 날이다 괴롭게

wsdl2java.bat -uri SOAService.wsdl -o D:\temp p test -d xmlbeans -a -s -ns2p -uw 

나는 다음과 같은 예외가 얻을 :

Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException 
: Error parsing WSDL 
     at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerat 
ionEngine.java:156) 
     at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35) 
     at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24) 
Caused by: javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:ty 
pes/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve sche 
ma referenced at 'http://www.w3.org/2005/05/xmlmime', relative to 'file:/D:/Prog 
rammi/axis2-1.4/bin/SOAService.wsdl'.: java.net.ConnectException: Connection tim 
ed out: connect 
     at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(Unknown Source) 
     at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(Unknown Source) 
     at com.ibm.wsdl.xml.WSDLReaderImpl.parseTypes(Unknown Source) 
     at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source) 
     at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
     at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
     at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
     at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
     at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source) 
     at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.readInTheWSDLFile(
CodeGenerationEngine.java:288) 
     at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerat 
ionEngine.java:111) 
     ... 2 more 
Caused by: java.net.ConnectException: Connection timed out: connect 
     at java.net.PlainSocketImpl.socketConnect(Native Method) 
     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) 
     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) 
     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) 
     at java.net.Socket.connect(Socket.java:520) 
     at java.net.Socket.connect(Socket.java:470) 
     at sun.net.NetworkClient.doConnect(NetworkClient.java:157) 
     at sun.net.www.http.HttpClient.openServer(HttpClient.java:388) 
     at sun.net.www.http.HttpClient.openServer(HttpClient.java:523) 
     at sun.net.www.http.HttpClient.<init>(HttpClient.java:231) 
     at sun.net.www.http.HttpClient.New(HttpClient.java:304) 
     at sun.net.www.http.HttpClient.New(HttpClient.java:321) 
     at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLC 
onnection.java:813) 
     at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConne 
ction.java:765) 
     at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection 
.java:690) 
     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon 
nection.java:934) 
     at java.net.URL.openStream(URL.java:1007) 
     at com.ibm.wsdl.util.StringUtils.getContentAsInputStream(Unknown Source) 

나는 그것을 때문에 용의자를 wsdl2java 도구에 xsd를 검색 할 수 없도록하는 시스템 프록시에. 사실 나는 문제없이 브라우저에서 파일을 다운로드 할 수 있습니다.

wsdl2java에 프록시를 지정하는 옵션이 있습니까? 아니면 누군가가이 문제를 해결 했습니까? XSD를 다운로드하고 프로젝트에 추가 한 다음 (원격 파일 대신) 상대 파일을 포함하도록 WSDL을 변경했지만 파일이 타사 서비스이기 때문에이를 피하기를 원합니다. WSDL.

어떤 힌트를 주셔서 감사합니다.

답변

4

는 내가 같은 문제가 있었 아래 내가 당신을 도움이된다면보기 자바 -D 옵션

java -Dhttp.proxySet=true -Dhttp.proxyHost={value} -Dhttp.proxyPort={value} org.apache.axis.wsdl.WSDL2Java {wsdlURL} 

를 사용하여 해결하는 방법을 생각합니다. 감사합니다

+0

안녕하세요 praveena, 6 개월의 지연과 함께 답변 해 주셔서 감사합니다. –

1

이 솔루션은 사용자의 설치에 따라 asis 작동하지 않을 수 있습니다. -Dhttp.nonProxyHosts = {제외 할 호스트 목록} 옵션의 솔루션에 대한 언급이 없습니다.이 옵션은 웹 서비스를 실행하는 서버가 로컬이고 환경 외부에서 호스팅되는 xml 파일에 대한 참조가 있거나 프록시가있는 경우 필요합니다. 로컬 요청에 응답하도록 설정하지 않았습니다.