How to create SOAP client with spring application - web-services

I need to create a client with WSDL. I have a Java web application with JSF, Spring and JPA. In this application I need to create a form and send the info to the SOAP web service. This service should return another object with status.
Please, any idea I will be grateful
regards
sorry by my english

I assume you have generated classes from the WSDL needed for you client. In Spring it is very simple by using Apache CXF. For e.g.:
<jaxws:client id="yourService"
serviceClass="com.something.YourService"
address="the URL of web service"
username="username"
password="password"/>
And in your class where you need to call this web service just autowire it:
#Autowired
#Qualifier("yourService")
private YourService service;
Take a look at the example: http://cxf.apache.org/docs/writing-a-service-with-spring.html

Related

Use CXF client api with Java web application

How to consume Web service suing Apache CXF client API.
I have generated the client Code using eclispe but I didn't found any document specifying how to use that generated code in my web application.
How to configure CXF? I am using tomcat to run my java web appliation.
How to use the generated code?
Do I need to add anyhting in my my web.xml?
I have downloaded CXF binaries from apache CXF website but don't know which libraries are needed. I am affraid i may end up adding all the jars.
I am using Tomcat 7, Java 1.6 and plane jsp/Servlet for my application
I am new to web services.
Thanks in advance
One sample code that may help.
URL wsdlurl=SOAPWebServiceTransport.class.getClassLoader().
getResource("my.wsdl");
// MyService will be one of the service class that you have generated (with different name ofcourse)and which must be extending Service class
//getOnlineServicePort will be a method (with different name ofcourse) in your service class which will give you the interface referrer using which you'll call the webservice method
OnlinePort service= new MyService(wsdlurl).getOnlineServicePort();
Client proxy = ClientProxy.getClient(service);
//configure security user name password as required
//Add interceptors if needed
//Now you can directly call the webservice methods using the service object
service.method(parameter)
you can also refer to some example one is here

How to pass collection<?> over JAX-WS web service

In my project I need to write a web service which will receive Collection<?> as a parameter.. I am using apache CXF.. After I have written the service method I am unable to test it using SOAP UI (It is not generating any request).. My question is - Is it possible to receive Collection<?> over web service? I need to receive Collection of any object type.. Please help..
You need to work directly with SOAP messages.

Communication between web services on different servers

I have 2 different webservices running on 2 different tomcat application servers (w/ axis2 web service engine) (Webservice A runs on Server A and Webservice B runs on Server B).
How can web service A on Server A pass Data A (file) to Web Service B on Server B? I am new to web services and would appreciate any help in this regard. The webservices are in Java.
Thanks!
Service A needs to be a client of service B. Service B should expose some method service A will consume (and pass required data using it). The process is as follows:
If suitable service method doesn't exist yet in service B then add new method to service B's WSDL file.
Regenerate intefaces from extended WSDL file.
Create functional test for new service method .
Make service A a consumer of method of new (extended) service.
Create acceptance tests for service A methods using service B's method :-)
Implement new service method in service B.
Implement conusmer logic in service A.
Expose a "send" web-service API on B and call it from A.
There are thousends of ways, but with HTTP Protocol you can use: POST or PUT methods.
However, you'll need to write application on each side...

difference between soap web service and webservice

i saw that in asp.net .asmx file, we create webservices
[webmethod]
//method definition here
now for soap webservice
[webmethod]
[SoapHeader(some parameters here)]
//method defination here
my question is what's the difference between both webservices type and how to choose which service type to choose
There really isn't. A standard webmethod is still transported using soap. The second one just has a custom SoapHeader attached to it. This is commonly used when using authorization to perform access control to the webservice or to post special header information along with the standard service request.
Try this as an example: http://www.codeproject.com/KB/cpp/authforwebservices.aspx
You could be confusing what you've heard about WCF and ASMX web services. Microsoft considers ASMX services to be "legacy technology", anad say that all new web service development should be done using WCF.

ASMX Web Services: Where can I see SOAP and WSDL generating by the platform

Following reference indicates ASP.NET automatically creates a WSDL and SOAP request. Where or through what I can see the nuts and bolts?
http://www.w3schools.com/webservices/ws_example.asp
ASP.net generates the WSDL according to the method(WebMethod) signature along with other web service specific attributes.
For example, the method name is web service operation, serialized parameter of the method is part of SOAP request and serialized return object of the method is part of SOAP response.
Search Related topics for details,
Building XML Web Services Using
ASP.NET XML serialization
Your reference is out of date. You should not use ASMX web services for new web service development. Microsoft now considers them to be "legacy technology". You should use WCF for all new web service development.