Spring Webservice SOAP with RPC style configuration - spring-boot

By default Spring Webservice sets up SOAP using document style, but if we want to change it to RPC style, how can we do that?
I'm using Spring Boot 2.7.5.

Related

Spring SOAP Webservice Consumer/Client example using apache HttpClient5

Spring SOAP Webservice Consumer/Client example using apache HttpClient5
Spring SOAP Webservice is still using HttpClient implementation, HttpClient 4.x. When I open the Spring WS API for org.springframework.ws.transport.http.HttpComponentsMessageSender to set ConnectionTimeout, it still uses HttpClient 4.x java classes.
But I am looking for Spring SOAP WebService using apache HttpClient5 component classes.
Can someone help here to provide the equivalent example.
Please dont give me old examples.
I am using Java 17, SpringBoot 3.0.1, Spring-ws-core 4.0.0
I referred internet, here are some of the below URLs
https://hc.apache.org/httpcomponents-client-5.2.x/migration-guide/index.html
https://snehapatil02.medium.com/soap-web-service-client-with-spring-boot-3c7034351c46
How to set timeout in Spring WebServiceTemplate
It is still in the works.
If you really want to use it you can always use the ClientHttpRequestMessageSender, which uses the Spring Framework ClientHttpRequest abstraction, which does support Apache Http Client5.

Converting Legacy soap based web service to rest service

I have recently encountered a problem statement ,there is a legacy code using soap based web service and ant as build tool.
My task is to convert the soap based web service to rest endpoint using spring boot and then end goal is to convert to microservice.
I have seen lot of articles where spring starter project is created with spring webservice dependency and they are also generating the classes through xsd's and using annotations like payload and SOAP configuration and checking the wsdl after running the application.
Is this the right approach to convert soap to rest but in my understanding it is simply creating soap web services using spring boot.
If we expose Rest Controllers with Pojos generated and generating the response type as xml or json ,do we need to do something apart from this to achieve the goal of converting soap to rest?
Any suggestions?
I am still exploring the working solution.
So far I have created the config client and server and I am thinking how to code inside the client code to expose soap as rest service.

Spring Rest Controller vs Camel rest servlet in micro services --- What's the difference , is camel have any other adv?

In my previous application, i have exposed rest api using spring rest controllers.
Now i'm going to work in spring boot microservice where they have used , camel rest services.
Is there any adv of camel rest compared with spring rest?
Apache Camel offers a REST styled DSL which can be used with Java or
XML. The intention is to allow end users to define REST services using
a REST style with verbs such as get, post, delete etc.
Source https://camel.apache.org/manual/latest/rest-dsl.html
The idea of Camel REST endpoints is to start e Camel Route with a REST Call.
If you don't need Camel Routes it doesn't make sense to use Camel REST.
On the other side Spring MVC provides the ability to define REST APIs that will use other Spring Components to fullfil use case.

Using Gateway to consume Spring Boot application from Spring Integration application

I am just starting with Spring Integration with Spring Boot 2.
I am working on a application which uses Spring Integration's HTTP outbound gateway to consume a Spring boot Service.
I am consuming the spring boot service from Spring Integration application using Gateway.
When I call the Gateway method which in turn will use the outbound gateway to call the spring boot service, the request does not seem to be completed. It is just going on when I make the HTTP GET request via the browser.
The request is also not received by the Spring Boot service.
I am not able to identify what is wrong in my Integration application when using gateway to consume a Spring Boot 2 service.
I have shared my Spring Boot 2 Application and also the Integration application which I am using to consume it in the below github folder. it contains 2 folders, one for the spring Integration application and the other for the spring boot application.
https://github.com/gsamartian/spring-int-demos
I have exposed a REST interface for the Integration application using RestController.
I access the boot application from integration application via the url, http://localhost:8763/callExternalServiceViaGateway
I am able to access the spring boot application directly from its port.
If anyone can help me identify the cause it would be great.
Thanks,
Your problem that the gateway method is without any args:
#Gateway(requestChannel = "get.request.channel", replyChannel = "reply.channel")
String getCustomMessage();
In this case the gateway works as receiving. No any requests is send because nothing to wrap to the payload. See more info on the matter in the Reference Manual.
Right now I see several bugs with the payloadExpression and no arg, so I suggest you to add some String payload arg to the getCustomMessage() gateway method and perform it with an empty string.
Will take a look into the bugs and will fix them soon.
Thank you for a good sample how to catch and reproduce!
https://jira.spring.io/browse/INT-4448
https://jira.spring.io/browse/INT-4449

Spring XD as a Rest Endpoint

Can we integrate Spring XD and Spring MVC, so that we can ingest/process data sent to the REST end point?
We have huge amounts of data collected in a Spring MVC app and are wondering if we could use Spring XD for this.
The http source is a stripped-down http server (based on netty); it is not a full Spring MVC server. For that, you would need a custom source with an embedded tomcat/jetty.
See Artem's comment on this answer for a suggestion about how to embed tomcat in a module.

Resources