Category Web Services

Apache CXF with Spring: How to add HTTP headers to a SOAP request using a custom CXF interceptor?


Let’s assume that we want to make a SOAP call to a service at http://localhost:8080/samplewebservices/echoserviceinterface, and it requires that we add an API / Access token as a HTTP header, we can do it this way: Assumptions Endpoint: http://localhost:8080/samplewebservices/echoserviceinterface Service Interface: singz.ws.test.interface.EchoService ACCESS_TOKEN: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 (HTTP Header) Spring Application Context Configuration Custom Interceptor to add HTTP […]

Different SOAP encoding styles – RPC, RPC-literal, and document-literal


SOAP uses XML to marshal data that is transported to a software application.  Since SOAP’s introduction, three SOAP encoding styles have become popular and are reliably implemented across software vendors and technology providers: SOAP Remote Procedure Call (RPC) encoding, also known as Section 5 encoding, which is defined by the SOAP 1.1 specification SOAP Remote Procedure Call Literal […]

Using .NET v2.0 generated WSDLs with JAX-WS: How to resolve “A class/interface with the same name “XXXX” is already in use. Use a class customization to resolve this conflict”?


I’ve noticed an issue in WSDLs generated by .NET 2.0 apps: some of the element(s) and their corresponding complextype definitions have same name. If you happen to generate JAX-WS portable artifacts (see below) from one such WSDL for your project (during technology migration etc. and you don’t want the consumers who use this WSDL to […]

Apache CXF: How to add custom HTTP headers to a web service request?


HTTP header fields are components of the message header of requests and responses in the Hypertext Transfer Protocol (HTTP). They define the operating parameters of an HTTP transaction, carry information about the client browser, the requested page, the server and more. Here’s how the HTTP headers can be added to your web service calls made […]

Apache CXF: How to add custom SOAP message headers to a web service request?


SOAP headers can be added to a Web service request in different ways, if you use Apache CXF. They way I prefer is the one I’ve mentioned here – as it doesn’t require changes to wsdl or method signatures and it’s much faster as it doesn’t break streaming and the memory overhead is less. The […]

Apache CXF-based Java Web Services: How to log/print the payload XML of incoming SOAP request using LoggingInInterceptor?


I’ve had a requirement to print the exact SOAP XML of incoming requests to one of our web services written using Apache CXF Framework and here’s what I did. For doing this quickly, I’m taking the code from https://singztechmusings.wordpress.com/2010/12/10/java-web-services-soap-over-ssl-cxf-framework/ for CalculationServerIfc that basically does addition/subtraction based on web service requests. Here’s it: and I’m assuming […]

Web Services Specifications/Standards – A handy poster for Web Services’ Architects/Developers


Just came across a pdf document that summarizes the web services’ specifications/standards neatly as a poster. It was an interesting read. Often we go through vague theory, which we hardly remember over time. But this one, I’m sure, you’ll remember for a long time. This PDF document can be downloaded from here – innoQ_WS-Standards_Poster_2007-02.pdf. Wikipedia […]

Contract-first Web Services: What are the different ways to define XML data contract?


I was glancing through Spring Web Services v2.0 framework reference tutorial today, and found an interesting piece of information that I’m gonna share with you all here: While writing contract-first web services i.e. developing web services that start with the XML Schema/WSDL contract first followed by the Java code second, there are four different ways […]

Apache CXF: How message processing happens and what’s the role of interceptor?


When a Apache CXF developed consumer invokes a remote service the following message processing sequence is started: 1. The Apache CXF runtime creates an outbound interceptor chain to process the request. 2. If the invocation starts a two-way message exchange, the runtime creates an inbound interceptor chain and a fault processing interceptor chain. 3. The […]

Apache CXF: Adding a custom interceptor to an interceptor chain


According to CXF docs, Interceptors are the fundamental processing unit inside CXF. When a service is invoked, an InterceptorChain is created and invoked. Each interceptor gets a chance to do what they want with the message. This can include reading it, transforming it, processing headers, validating the message, etc. When a CXF client invokes a […]