Я делаю разработку для отправки запроса SOAP
на удаленную веб-службу и получения ответа с помощью apache Camel
.Отправьте запрос SOAP на удаленный веб-сервис и получите ответ с помощью apache Camel
В этом случае я успешно сгенерировал код клиента wsdl2java с помощью cxf-codegen-plugin
для WSDl, упомянутого ниже.
- Пример WSDL URL:
http://www.webservicex.net/stockquote.asmx?WSDL
И после того, как делают некоторые исследования, я создал ниже пример кода, чтобы отправить запрос SOAP к веб-службе, определенной там и получить ответ с Apache Camel, используя сгенерированный клиентский код.
CamelContext context = new DefaultCamelContext();
HttpComponent httpComponent = new HttpComponent();
context.addComponent("http", httpComponent);
ProducerTemplate template = context.createProducerTemplate();
GetQuote getQuote = new GetQuote();
getQuote.setSymbol("test123");
GetQuoteResponse getQuoteResponse = template.requestBody("http://www.webservicex.net/stockquote.asmx",getQuote, GetQuoteResponse.class);
System.out.println(getQuoteResponse);
Но оно дает ошибку ниже.
Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream but has value: [email protected] of type: net.webservicex.GetQuote on: Message[ID-namal-PC-33172-1469806939935-0-1]. Caused by: No type converter available to convert from type: net.webservicex.GetQuote to the required type: java.io.InputStream with value [email protected] Exchange[ID-namal-PC-33172-1469806939935-0-2]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: net.webservicex.GetQuote to the required type: java.io.InputStream with value [email protected]]
Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: net.webservicex.GetQuote to the required type: java.io.InputStream with value [email protected]
Что у меня отсутствует? Связывание данных? или что-нибудь еще? Я сгенерировал код клиента с помощью cxf, так как я могу отправить это с помощью cxf?
Я просто хочу отправить запрос SOAP на удаленный веб-сервис и получить ответ с помощью apache Camel.
- Camel Версия: 2.9.0
- Java Версия: 1.7.x/1.8.x
Большое спасибо bgossit! Он отлично работает для этого. У меня есть один вопрос. Как отправить тело запроса, если оно принимает несколько параметров. например: как отправлять параметры запроса (messageHeader, securityHeader, sessionCreateRQ) для нижеприведенного вызова (SessionCreateRS sessionCreateRS = sessionCreatePortType.sessionCreateRQ (messageHeader, securityHeader, sessionCreateRQ); // Это от JAX-WS) – namalfernandolk
О, у меня был немой ответ .. Я просто добавил их в список и отправил. Это сработало! Пожалуйста, поделитесь лучшим ответом. – namalfernandolk