What Java web services frameworks support RPC/Encoded messages? - soap

I have tried several Java frameworks, but I only found out that Axis 1 supports these messages, but Axis 1 is old and not developed anymore. So I would like to know if there are any Java frameworks that support RPC/Encoded messages and are still supported and developed.

It looks like Axis1.4 is the only option as RPC/encoded SOAP should be old - old and no longer developed framework shoudln't be a problem
http://ws.apache.org/axis/java/user-guide.html#ServiceStylesRPCDocumentWrappedAndMessage

Related

Play Framework Bi-directional support including older browsers

I'm about to build a web application in Play Framework and I'll need to have bidirectional communication between the server and the browser.
For modern browsers I can use web sockets, but for older browsers I will need to use long polling. Is there a library that will abstract away this choice and choose whichever one is supported by the browser? Similar to SignalR in .net.
It seems like the Atmoshphere library is absolutely what I was looking for. https://github.com/Atmosphere/atmosphere
Two good options nowdays:
SignalJ based on SignalR https://github.com/chanan/SignalJ using Akka and integrated in Play and with good integration with SignalJ web servers (based on .net)
Atmoshphere library https://github.com/Atmosphere/atmosphere that also supports Play integration and multitude of frameworks

GWT and WebSocket / Push data from server to GWT client

Is there any good library which supports WebSockets and is compatible with GWT? Ideally, the library would support WebSockets as well as a fallback for browsers which don't support WebSocket, e.g. a comet-like approach or polling.
I'm currently using GWT-Comet to push data from my server to my GWT web application. However, this library is a bit broken in some aspects and it seems it's not maintained actively anymore. Thus, I'm searching for an alternative.
I found Atmosphere, which suits the needs stated in the question pretty good. It supports GWT, and also Websockets. Also, it supports many different application Servers, like Tomcat and Jetty.

Is Google Web Toolkit is fine to develop database based web application?

Is Google Web Toolkit is fine to develop database based web application or do you have any other suggestion?
Thanks to answerers!
For a heavy Database based web application, nothing beats Grails. Check out this tutorial by IBM. It will show you the power of Grails and how easy it is to develop database based web applications in minutes. I love GWT and smartGwt, but will go for them over pure grails only if there is a lot of non-database based front end (client side) logic.
If you do not have a programming language of choice (Grails is groovy based, which is based on Java), you could even look at Ruby on Rails which was the inspiration for Grails itself.
Alternately, you can add both grails and gwt in the mix by using this gwt grails plugin so that you have a powerful database integration, as well as a powerful front end developer. (I haven't used this though)
Sure, but you will need to create your own RPC service to get records from server to client and to deliver modified records back the server. But it isn't difficult at all.
Alternatively you could also use SmartGWT, which is an extension for GWT with more widgets, etc. They have data bound objects but in free version would would need to create your own data sources. If you decide to buy a license they seem to have database integration out of the box.
And additional note to consider with SmartGWT is that it has relatively big download size - about 3MB uncompressed and almost 1MB compressed (HTTP server should compresse it; it is in HTTP standard and it is transparent). So if it is going to be a service in public internet it might get quite long to load (often exceeding magic 8 seconds).
I had been working on GWT (Google Web Toolkit) for 1.5 years and learned that its a perfect platform for developing web application which uses backend database for its operation unless you have the right skill sets working on your project and a basic design which is developed according to the requirement of your project.

Lifecycle management of a Rails application server

We are developing an application that has an iPhone client, and a Rails server. We have released a first version, and are now starting to work on 1.1 version.
We were wondering if there are any tools (external or provided by hostingrails) to address those two basic requirements:
- development / production versions of a Rails application
- simultaneous live versions of the application (versioned APIs) for example to keep supporting older versions of the client application iPhone.
A first approach we are thinking of right now would be to duplicate the application for each version of the API we want to have, each of them being referenced by a specific URL for example: myapp.com/v1 , myapp.com/v2 ...
This entire stack would itself be duplicated in order to have a live/production version, and a development one. Once tested, the development version would be switched with the production version.
What do you think of this approach ? Are there any tools that allow to manage the lifecycle of the application ?
Does Rails has built-in features facilitating this ?
Thanks
The simplest thing would just be to keep your API backward-compatible, thus obviating the need to maintain two versions of the API, and if you must evolve it in a way that breaks backwards compatibility, deprecate the old API and give it a real termination date so that you don't support it ad infinitum.
If you absolutely have to go down this road, read Fowler's blog post on the topic first (http://martinfowler.com/bliki/TolerantReader.html) and then look at namespacing your API routes. In Rails you could accomplish this using namespaced routes and controllers, so you might have your original api at /application/endpoint and your new version at /application/v2/endpoint (I'm assuming that you can't change your endpoints for old clients easily)
I'm not aware of any tools that explicitly claim to solve the problems you're saying you want to solve, but I think that has more to do with developers working hard not to need them than the idea that they're not solvable in Rails.
Did you consider using Subdomains?: http://railscasts.com/episodes/221-subdomains-in-rails-3

Sending StreamMessage from CMS to JMS

I am trying to send an ActiveMQ StreamMessage from a C++ (CMS) client to a Java (JMS) client. However, the Java client is unable to correctly read the values from the incoming message - most fields are extracted as null, and the fields that do have values associated with them just seem to contain garbage.
I can send BytesMessages and TextMessages from our C++ client to our Java client just fine, so the BytesMessage is our fallback for now.
However, the misbehaving StreamMessage is making us suspect something is wrong/incompatible between our two clients.
We are using ActiveMQ 5.4.2 on the Java side, and activemq-cpp 3.0.1 on the C++ side.
Are there any known incompatibilities between the JMS and CMS implementations, or are there any other obvious pitfalls I should look for?
I think there were some issues that I fixed somewhere between 3.0.1 and the latest 3.2.4 that fixed some issues with stream message. I'd really recommend that you update to v3.2.4 of CMS as there's been a large number of bugs fixed, along with some great new features.
The CMS issue tracker is here if you want to review to issues fixed since the version you are using:
Edit: Found the issue that fixed it, its here.
-Tim
www.fusesource.com