How to create web-service from wsdl and xsd files in NetBeans? - web-services

My task is to crate web-service in NetBeans (using Tomact) from wsdl and two xsd files.
I don't understand what should I do with xsd files? What sequence of steps?
I've tried to crate "Web service from WSDL" in NetBans, but can't figure out how I should use xsd.

Web Services are described by a series of WSDL and XSD files, The WSDL elements that describe the services are separated into various files based on their level of abstraction. Data type definitions are separated from service descriptions and placed into XSD files. You can follow this for development on Netbeans with contract first approach

For WSDL and XSD, they are just XML, you can create them from scratch or modify based on an existing one in any editor.
Specifically, for how to start from WSDL and XSD in Netbeans, please refer to the following link for details:
https://docs.oracle.com/cd/E13224_01/wlw/docs103/guide/webservices/conWebServiceDevelopmentCycle.html

Related

SOAP: how to analyse WSDL and XSD files?

I am very new to SOAP, and I need to call some webservices written in SOAP 1.1
The webservice provider gave me a zip file, with two directories:
one with WSDL files
one with XSD files
They are very difficult to read, as they are structured in XML, and they link to each other. Very confusing.
Can you recommend some tools that can easily provide a full list of webservices and their parameters, without having to read through the XML and open multiple files?
I found this open source software called SoapUI:
https://www.soapui.org
you can add WSDL files, and it maps all the webservices defined there, with all the parameters
it automatically builds the request XML, and also allows you to make calls
You can import wsdl and xsd files from you IDE like Eclipse. It comes with features that permit you explore each part of those documents.
here you can find the steps to import wsdl.
If you want a paid tool , I recommend you get
oxygenxml . It provides a editor for wsdl. You can download the trial version and prove it.

What is the difference between ?wsdl and ?singleWsdl parameters

My messaging provider gives me two different kinds of WSDLs to use.
http://my.amazonaws.com:8000/webservice/?wsdl
http://my.amazonaws.com:8000/webservice/?singleWsdl
The first one is an embedded WSDL. Can NOT use it to generate WSDL2java packages and
can NOT use JAX-WS to create a connection.
The second one is a single WSDL. It can generate Java packages with CXF 3.0's WSDL2java and can use JAX-WS to create a connection. It works very well.
Please let me know what is the difference between these two kinds of WSDLs.
Without knowing what those links return we can only guess, but here are some details that might help you....
Suffixing the web service endpoint with ?wsdl get's you a WSDL file. The WSDL can be generated by the framework at runtime based on the web service skeleton code or can be an actual physical file that the server just sends back when the URL parameter is specified.
The WSDL contains an XML Schema that can be specified either inside the WSDL itself or as separate files that are imported by the WSDL. And now a problem occurs...
Some web service stub generators can only handle a full WSDL, with the Schema inside. If the WSDL imports other files the tools can't resolve the imports and fails. This made web services hard to consume because clients had issues creating stubs to interact with the web service. So much so that service providers either used an actual WSDL to respond to the ?wsdl request or started writing all sorts of hacks and plugins to make the web service generate the full WSDL.
But some providers didn't even bother so clients had to write the hacks to parse the WSDL or they had to download all files, assemble them manually into a single file and use that instead.
With time people recognized this as a problem and frameworks adapted to provide the full WSDL, not one with imports. But this generated another problem. Changing what the ?wsdl URL returned could break all those hacks created around it to fix the import problem. For this reason another convention was chosen to return the full WSDL: ?singleWsdl.
So there are frameworks that generate a full WSDL, some that generate it with imports, some allow you to specify an actual physical file, some that support the ?singleWsdl convention, some that don't. Not relevant to this question, but just for completion, there is also a ?wsdl2 convention that get's you a WSDL 2.0 definition (?wsdl get you a WSDL 1.1). Some frameworks support ?wsdl2, some don't.
My guess is the issues you have are caused by Schema imports, but without the WSDLs themselves I can't tell. Hope at least that these details help you better identify the problem.

Generate WSDL for existing SOAP Service using captured traffic

I need to use the SOAP service of a printer. There is a windows tool to access this service and I used it to generate SOAP requests and responses of the important functions that I need.
Now I should write a client for Linux using Python and I found the easiest way would be to use the suds library with an WSDL file. But I don't have this WSDL!
As I investigated the windows tool (looked at the hexdump of the executables), I came to the conclusion that there probably is no WSDL file at all.
Now my question is, has anybody experience with "reverse engineering" SOAP services and knows tools which could be useful for creating WSDL files for existing services? (Googleing hasn't brought up anything useful yet).
You mentioned this is the SOAP service of a printer. Is the printer's API documented on the manufacturer's site? Does the documentation include the WSDL? Can you get the WSDL from the manufacturer?
If you can get the WSDL from the manufacturer then you're done!
If not, then you have to build the WSDL by yourself because I doubt you can find a tool that generates WSDLs given SOAP samples (when working with SOAP web services you mainly get two kinds of tools: those that generate code from WSDL + those that generate WSDL from code).
It's not hard to create the WSDL if you are familiar with SOAP, WSDL and XSD. You just need a text editor or maybe even a WSDL editor to speed things up.
If you don't have full confidence in your WSDL knowledge, there are still some tools that can get you most of the way to the complete WSDL. Here is a way you could do it:
1 - First you need to create the XML schema for the SOAP payloads. For this you can find tools, even some online. After you have the schema, tweak it to your needs by adding, changing or removing elements.
2 - Now you can use the XSD to generate a WSDL. There is an online tool that does that. It just needs the request/response element types to end with Request/Response. Make sure you read the instructions.
You take your XSD file, change the names of the operations to add the Request/Response suffix and feed it to the WSDL Generator - Web Tool. You will get your WSDL.
Now tweak this WSDL as you like (remove the Request/Response suffixes if you don't need them) then ...
3 - ... make sure you end up with a valid WSDL.
4 - Now you can take your WSDL and use a tool like SoapUI to generate sample requests and responses from it just to verify that you get the proper results back.
Do the SoapUI messages match the messages you started with? If yes, you are done and can feed the WSDL to suds to create the Linux client. If not, tweak the WSDL until you get the result you are after.

Generate java classes with wsdl/xsd files using RAD

I am new to webservice world. I just got WSDL and XSD files from another Interface Application and want to start from here. Can anyone please help with the steps or tutorial to generate java classes with available wsdl and xsd files using RAD?
Two walkthrus for this process
IBM's docs
OR you can try this Websphere docs
There are a number of resources. YOu got to state the version of RAD that you are using. Redbooks are a good source for such information besides the Infocenter.
This approach that you are looking at is called a Top-Down Process where in you start with the WSDLs & XSDs and create the service implementation.
Try this one: http://www.redbooks.ibm.com/abstracts/sg247672.html
Look at chapter 18 Developing Web services applications and you should be looking at "Creating a top-down Web service from a WSDL"
HTH

What C or C++ tool is used to automatically generate WSDL in SOA project?

Suppose in fairly large SOA project I am tasked with developing Web Service in C++. I am looking for tools that would automatically generate WSDL ((both REST and SOAP))and XML Schema for this web service that I have implemented in C++ resulting in several classes and their methods.. Are there such tools that would completely automate this process? Or at least part of WSDL and XML Schema would still need to be authored manually?
gsoap is a soap framework for C/C++. It comes with a nice tool that completely automates he task of creating the wsdl files from a header file.