Just tried with implementing WS Security in SOAP using UsernameToken in mule. It worked fine.
Now since i am using SOAP component at various locations in my mule project, i want to know if there is any way to define WS security parameter globally and then refer those properties in each SAOP component, without having to define them for each component. Such global WS security definitions should be used in various deployed mule packages.
Thanks
Just create a spring config file and import that in each application. Alternatively just use a properties file with your definitions.
Related
We are designing a Java middleware web application, something like a ESB, such as IBM message broker or mule.
We have many Oracle EBS interfaces(soap web services), and now the salesforce CRM wants to call the EBS interfaces through the middleware application.
Slaesforce CRM calls the middleware by rest json, and the middleware calls EBS by SOAP webservice. The picture below helps you know my meanings.
We have struggled many days to design the middleware with Spring Integration. But we found it difficult to do this. We still need to generate a jar file(by CXF) for every EBS interface(each wsdl with a jar file), and call the EBS interface by the traditional web service way.
We do not want to generate the webservice client jar files for each EBS interface. Is spring integration suitable for this(no generating the jar files for each WSDL, just some configuration or not much coding)? If not, can you suggest some other product else?
Thank you very much in advance.
For the SOAP interaction Spring Integration provides the WS module which is fully based on the Spring WS project.
I don't see reason to generate something, if you just can use the Spring Integration's <int-ws:outbound-gateway> to call that Oracle ESB service.
For this purpose you just need to know which XML to build for the request and which to parse from the response.
Seems for me for this purpose it would be enough for you to know the service WSDL and investigate it from the SOAP UI.
If I were you I'd just forget the CXF when we are with Spring :-).
An API gateway is one product which can be used here. Typically, it acts as a proxy between the client and the applications, but it can also do transformation between JSON and XML, which is what would happen in a REST to SOAP conversion.
MuleESB, although not a gateway can also be used for this purpose, see this link How to convert SOAP web service to REST web service in Mule
We did this by ourselves.
We developed the middleware by ourselves with Java.
We used java with freemarker template to convert the json request to required soap envelope body. Then used apache httpclient to call the web service(oracle EBS).
I am the developer of an application which is the consumer of an in-house developed web service. The web service was originally developed in Java and deployed in JBoss.
Recently, I have been notified that the web service had been completely ported to .NET WCF. I simply updated the web service endpoint URI string in my configuration file, but my application has failed to connect to the new web service.
Upon comparing the old and new WSDLs, I can see that the methods and the structures are the same, but somehow the namespaces and the internal structures of arrays are different.
What do you suggest so that my application would be compatible with the new web service?
Thank you very much.
Namespace change means the WSDL of both Java Web service and WCF service are different. You know in programming classes of the same name but in different namespaces are totally different classes. Likewise, though the method signatures and data signatures look the same, however, in different XML namespace of WSDL, they are different contracts. Thus on your client side, you should have new set of proxy classes to talk the the WCF service.
You may ask the developers of the Web services about what were the intend of changing Xml namespace in WSDL. If for the co-existence of both Java Web service and Wcf Web service and enforcing some changes on client side, you MUST generated new proxy classes against the new WSDL, and it is recommended to use svcutil.exe rather than Service Reference in IDE so you have fine gained control over CLR namespace mapping to Xml namespace.
If the service developer could reverse the change the Xml namespace of WSDL for good reasons and the WSDL could remain the same, you just need to change only URL.
I want to expose on wso2 esb or wso2-as a set of webservices sharing
the same business object model.
What is the best way to do it with wso2 and DeveloperStudio ?
Tks
Nicolas
You can put the relevant jar inside CARBON_HOME/repository/components/lib folder.
Just deploy all your services(*.aar or spring service) in wso2AS and keep your libraries in
repository/components/lib folder.
Wso2esb is not used to host services, rather it is used as mediation engine.
Is possible to do a clustered web service (with JAX-WS), that each node receives automatically the resources? May be with EJBs? If possible, how to do it?
Thanks
We have a 2-node cluster on JBoss 5.1. On these node is deployed a WS via JAX-WS (JbossWS).
In JBoss is very simple to expose an EJB3 class and methods inside as Web Services. You only need to mark with annotations classes and methods you want to expose. All work without any deployment file. You can deploy the JAR file directly! :-)
Please refer to this page for other explanation: JBossWS
I assure you: it works! We have it in production environment...
I am implementing SOAP web services for a commercial application, and I am using GroovyWS to speed up the development.
But, when I deploy it on Tomcat, I am not using Grails, as the software has it's own J2EE framework, so how I do I get it to react to wsdl requests?
Do I need to write a groovy-based servlet?
Ideally I would like the WSDL generated upon request, so I can easily change the interface and see the change.
It seems I will miss the annotations that JAX-WS provides for, though, to help fine-tune the WSDL.
Using the example web application, the WSDL can be retrieved as follows:
http://localhost:6980/MathService?wsdl