Я пишу клиент веб-сервиса, работающий на Linux JBoss 5.0.1/JBossWS Native 3.1.1, который вызывает службу, работающую на стеке Windows Tomcat 6.0.29/Metro.
WSDL и файлы XSD, на которые есть ссылки, доступны через браузер, а тесты JUnit, которые я написал, работают просто отлично. Но когда клиент работает внутри JBoss, я получаю следующую трассировку стека:
Caused by: org.jboss.ws.metadata.wsdl.WSDLException: javax.wsdl.WSDLException: WSDLException (at /definitions/types/xsd:schema): faultCode=PARSER_ERROR: Problem parsing 'http://server:8280/ValueListService/?xsd=1'.: org.xml.sax.SAXParseException: Premature end of file.
at org.jboss.ws.tools.wsdl.WSDLDefinitionsFactory.parse(WSDLDefinitionsFactory.java:152)
at org.jboss.ws.metadata.umdm.ServiceMetaData.getWsdlDefinitions(ServiceMetaData.java:293)
at org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.buildMetaData(JAXWSClientMetaDataBuilder.java:84)
at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.<init>(ServiceDelegateImpl.java:138)
at org.jboss.ws.core.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:63)
at javax.xml.ws.Service.<init>(Service.java:79)
at javax.xml.ws.Service.create(Service.java:96)
at ...
При отладке реализации JBossWS WSDL я обнаружил, что InputStream, созданный из указанного XSD, имеет значение null. Обычно это указывает на предположение, что между клиентом и сервером существует какая-то проблема с сетью (или брандмауэром). Это все очень запутанно, так как у меня есть модульные тесты, работающие на той же машине, так что это не может быть из-за этого.
wget
WSDL на Linux-машине? - person artbristol   schedule 12.05.2011