File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Web Services and the fly likes Expose only specific webservice methods to specific clients Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Web Services
Bookmark "Expose only specific webservice methods to specific clients" Watch "Expose only specific webservice methods to specific clients" New topic
Author

Expose only specific webservice methods to specific clients

Chitra Jagannathan
Greenhorn

Joined: Apr 21, 2009
Posts: 8
I have wsdl created which exposes different webservice methods. I need to give wsdl path to different clients with only their required service methods to be exposed.
How do i achieve this?
I have used apache cxf with spring, created separate bean.xml which describes serviceImpl as the endpoint for the webservice.
dileep keely
Ranch Hand

Joined: Jun 28, 2010
Posts: 98
Say you have different services like
a) CreditCardDtls,b)AddressDtls, c)SubmitApplDtls.
And you want to have a& b service to be given to one client and C for other client.

You can create separate XSD's and import the resource accordingly in different wsdl.

WSDL1:
<wsdl:types><xsd:import namespace=""schemaLocation="AddressTypes.xsd" />
<xsd:import namespace="" schemaLocation="CreditCardDtlsTypes.xsd" /></wsdl:types>

WSDL2:
<wsdl:types><xsd:import namespace=""schemaLocation="SubmitAppliDtlsTypes.xsd" /></wsdl:types>


Hope this will help!!
Ivan Krizsan
Ranch Hand

Joined: Oct 04, 2006
Posts: 2198
    
    1
Hi!
If you are using WLSD 2.0, then an interface can extend another interface.
In this case, you can set up a hierarchy which shares operations; the operations in the interface at the bottom of the hierarchy is available to all interfaces higher up in the hierarchy.

If you are use WSDL 1.1, then you cannot extend <portType> declarations. What I would consider is having multiple portType declarations; one for each kind of client.
Then you can assign endpoints depending on the type of client; client A would only be able to access and endpoint on which the operations in PortTypeA are available while, for instance, client B would be able to access two endpoints, one on which the operations in PortTypeA are available and another on which the operations in PortTypeB are available.
The different kind of clients would still be able to know about other kinds of operations being available to other clients, albeit not be able to invoke them.
If you want to completely hide operations not available to a client, then one WSDL per client is the only way I can think of that will accomplish this.
Best wishes!


My free books and tutorials: http://www.slideshare.net/krizsan
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Expose only specific webservice methods to specific clients