Мне нужно реализовать Java SOAP JAX-WS Web-сервис. Клиент Web-сервиса отправляет XML файл в веб-службу. Затем необходимо обработать полученный XML-контент, а затем вернуть обработанный контент в формате XML в WS Client.
Это мой образец XML, который имеет простые три тега.
<uild>898999999</uild>
<customer>cName XXX</cusoter>
<profileId>TEST/TKTG MR</profileId>
Я объявил мой метод веб-службы, как показано ниже. RequestXmlDTO имеет поля в XML. ProcessedResponseDTO имеет XML-поля в качестве вывода. Я добавляю эти два типа сложных.
@WebService
public class WebService {
@WebMethod
public ProcessedResponseDTO getCustomerDetails(RequestXmlDTO requestXml){
}
Вопрос. Является ли это рекомендуемым и лучшим способом удовлетворить этот сценарий?
Вам нужно решить стратегию "Cotract First" или "Code First". Если вы решите продолжить
"Первый контракт" Определите свою схему как первый шаг. Тогда генерировать объекты JAXB могут
используя инструмент. Подобно классу, который вы упомянули, объявите подпись веб-службы в java
интерфейс. Используйте подпись метода для генерации WSDL, используя (http://cxf.apache.org/docs/java-to-wsdl.html).
Используйте этот WSDL для создания заглушек сервера. Вы можете использовать ANT-цель как
<target name="wsdl2Java" >
<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
<arg value="-d"/>
<arg value="modules/deployments/src/java"/>
<arg value="-p"/>
<arg value="com.solution.webservices.version1.jaxb"/>
<arg value="-ant"/>
<arg value="-impl"/>
<arg value="-server"/>
<arg value="path/wsdl/sample.wsdl"/>
<classpath>
<path refid="cxf.classpath"/>
</classpath>
</java>
</target>