У меня есть веб-служба, развернутая на сервере tomcat, а также сгенерированный файл wsdl для него.Проблема с пространством имен с wsdl, сгенерированным из JAX WS
Позже я сгенерировал новый проект мыла через wsdl и выполнил запрос на мыло к серверу.
Проблема здесь на стороне сервера, отказ от xml не выполняется из-за префикса пространства имен для «InputData» и «CCNA». В настоящее время это cfa.
Согласно коду Java, Пространство имен для InputData является хзом и CCNA является бьет. Итак, если я изменяю запрос на мыло, unmarshall отлично работает на стороне сервера.
Итак, где проблема? Генерация WSDL или где-либо еще в JAX WS? Я не должен изменять мой запрос на мыло. Запрос
SOAP:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cfa="http://cfa.ni.ctl.com/" xmlns:bim="http://www.qwest.com/XMLSchema/BIM" xmlns:xs="http://www.qwest.com/XMLSchema">
<soapenv:Header/>
<soapenv:Body>
<cfa:getCFACircuit>
<!--Optional:-->
<CFACircuitRequest>
<bim:RequestId>123</bim:RequestId>
<bim:WebServiceName>123</bim:WebServiceName>
<bim:RequestPurpose>123</bim:RequestPurpose>
<bim:AuthorizationInfo>
<!--Optional:-->
<bim:ApplicationId>123</bim:ApplicationId>
<!--Optional:-->
<bim:UserId>123</bim:UserId>
<!--Optional:-->
<bim:Userid>123</bim:Userid>
<bim:Password>123</bim:Password>
</bim:AuthorizationInfo>
<!--Optional:-->
<bim:TargetSchemaVersionUsed>
<!--Optional:-->
<bim:TargetXSDName>123</bim:TargetXSDName>
<!--Optional:-->
<bim:MajorVersionNumber>123</bim:MajorVersionNumber>
<!--Optional:-->
<bim:MinorVersionNumber>123</bim:MinorVersionNumber>
</bim:TargetSchemaVersionUsed>
<!--Optional:-->
<bim:TimeOutSecond>123</bim:TimeOutSecond>
<!--Optional:-->
<bim:SendTimeStamp>123</bim:SendTimeStamp>
<cfa:InputData>
<cfa:CCNA>123</cfa:CCNA>
<xs:CableKey>
<!--Optional:-->
<xs:LowUnit>123</xs:LowUnit>
<!--Optional:-->
<xs:HighUnit>123</xs:HighUnit>
<!--Optional:-->
<xs:CableId>123</xs:CableId>
<!--Optional:-->
<xs:CableSubPath>123</xs:CableSubPath>
<!--Optional:-->
<xs:CLLIALocation>123</xs:CLLIALocation>
<!--Optional:-->
<xs:CLLIZLocation>123</xs:CLLIZLocation>
</xs:CableKey>
</cfa:InputData>
</CFACircuitRequest>
</cfa:getCFACircuit>
</soapenv:Body>
</soapenv:Envelope>
XML аннотации для ввода данных на сервере:
@XmlElement (имя = "InputData", пространство имен = "http://www.qwest.com/XMLSchema", требуется = истина)
Я не знаю, почему с этой аннотацией inputData в wsdl не находится в соответствующих пространствах имен ... может быть, проблема связана с версией jaxb? вы можете попробовать с более новым? Извините, но я не знаю, как здесь помочь. Я также удалю свой ответ, так как он не решает вашу проблему. – albciff
ok..thanks..I попробовать с более новой версией jaxb – Ajay