Unable to publish wsdl file - java

Can any one tell me how to public the wsdl file ie., that web service is created in java using eclipse.I am self learner to java/eclipse and web service too,so can any one please make me clear with steps.
Thanks for your time!...

Apache Axis has some cool tools that I frequently use - to generate a wsdl, use java2wsdl. It has a command line version, but also a Maven plugin (which I highly recommend) that will re-generate the wsdl for you automatically each time you package your web service.
What's more, the axis stuff also provides auto-generation of client stubs by which you can use your web service in consumer apps or services. Alternatively, JAX-WS tools can be used for this as well. In either case I would recommend automating the process with Maven.
If you package your wsdl with your app in this way (rather than letting a server do this for you automatically), you can be certain that your contract will look the same on any platform.

Related

Implement WS-Policy in a JAX-WS Web Service

I am developing a SOAP Web Service in Java with JAX-WS. I am using Eclipse Juno and Weblogic 12c. The web service is being developed in an EJB Project. I am using a top-down approach: from a WSDL that I have, I use JDK's wsimport tool (via command-line) to generate all the Java classes, I import them to the project and then I provide an implementation for the SEI.
The WSDL has a specification of a WS-Policy with a wsp:Policy tag, but the code generated from wsimport has no kind of information/annotation for this. As such, I suppose I've to write it myself.
From the search that I've made, it seems that either I've to use some Weblogic annotation or use some CXF/Axis/Metro feature. Is this true? Can't I use anything from JAX-WS? I read that CXF/Axis/Metro are all implementations of JAX-WS, but I don't have any idea if I'm using one of them, I think I am using JAX-WS reference implementation, but I don't know if this is true.
I also would like to keep an implementation independent from any application server (Weblogic, in this scenario). If I have to use CXF/Axis/Metro, how can I add their features to my EJB Project?
Firstly you can use Metro, Axis or any other third party library in your project to generate your client code. However if you want not to use third party libraries, you can generate the needed wsse headers on your own.
The followinf link described how to generate your desired headers in order to call wsse secured web services, you should just implement your own SOAPHandler :
http://www.javadb.com/using-a-message-handler-to-alter-the-soap-header-in-a-web-service-client/

Accessing Web Service using Play Framework 1.2.5

I am using Play framework 1.2.5 in my application in Eclipse IDE. I need to access a web service built using IBM JAX-RPC. I have got the wsdl file of the web service which I need to access in my applicatiom.
For normal Java EE applications, I used to paste the WSDL in my workspace, generate the files by right clicking the WSDL file => Generate Client option i.e. generating files with the help of Eclipse IDE.
I am not sure how to access the WSDL using Play framework.
I want to know:
1) Where to paste the WSDL file in my workspace?
2) In Play framework how do generate the client (Not sure even if we need this or not in play framework) and access the service methods?
3) Any additional settings needed for accessing the service methods?
Please let me know about this.
Regards,
The easy way:
Use Play!'s built-in play.libs.WS (Link #2 and #3). You have to create the raw HTTP requests yourself, and parse the XML result from the server yourself. Of course, this can become a complex task, if the web service interface is complex.
Preferably, you will create a JAX-RPC client based on your WSDL, and use it from your Play! application.

Eclipse WSDL generator (from java class)?

I want to generate WSDL compliant with Java classes. At this phase I don't want to put it online, just have the wsdl (in order to discuss it with someone else) and validate the generated file.
I'm using Eclipse, so I would prefer any solution that's already integrated with it.
From eclipse in the java perspective:
Right click on the Java class you want to use as your service implementation
Select Web Services -> Create Web Service
Web service type should be "Botton up Java bean Web Service"
This will generate a WSDL file for you.
Also you can publish the service at localhost with any server (Tomcat, for instance) and then with your browser in the address bar write
http://localhost:<server_port>/path/to/your/service?wsdl
If the service is correctly configured, you should see the generated wsdl. Then you can copy/paste in any text editor and save it as myService.wsdl.
Hope that helps

Framework or tools for build wsdl with java

Is there any excellent tool in JAVA to deal with webservice or wsdl?
Yes. There is a standardized API (JAX-WS) that is even integrated into the Java standard API (the javax.xml.ws packages) since Java 6, and multiple implementations thereof, such as Axis and CXF.
Read about wsimport utility, which generates client-support code from the WSDL document (or URL pointing at service endpoint).
If you are using Eclipse try Eclipse Web Tools Platform Project, it's good at my point of view and sufficient for me.
For IntelliJIDEA Web Services link
If you're a Spring user, I'd recommend the Spring web service module. It makes using WSDL, creating web services, and implementing clients easy.

Reading Web service, I have a WSDL

I am normally used to using JSON/REST. I have been given access to a web service with WSDL file that I need to use to read data. I have no idea where to start
What is the quickest easiest way to get JAVA code up and running that can query this web "service"?
You can use libraries like Apache AXIS or Apache CXF, which include a WSDL2Java program you can run to parse the WSDL definition file and generate classes that let you invoke the web service.
Pick your framework (popular ones include Axis2, Spring-WS, Jax-WS). 2. Use the tool that comes with your framework to create Java proxies (for example, for Axis2, you'll use wsdl2java). 3. Write code that uses the generated proxies to actually call your web service.
I recommend Sun's JAX-WS (now built-in to Java 6). Google it (I can only post one link, below).
Some links...
Main site:
jax-ws.dev.java.net/
JAX-WS is under the Glassfish Metro project, but you don't need Glassfish to use it (we don't). However this is a good resource:
metro.dev.java.net/guide/
For starting with WSDL, see specifically:
https://metro.dev.java.net/guide/Developing_client_application_with_locally_packaged_WSDL.html

Categories