Tag Archives: integration developer

Past weekend’s installations and upgrades – WID’s fix

The past weekend was packed with installations and upgrades. I’ve got a bunch of software to install for my self-education – servers like IBM WebSphere Service Registry and Repository (WSRR) made it to RedHat Enterprise Linux (RHEL) 5.5 whereas more developer-oriented solutions like ILOG JRules V7.1 or Friday’s latest release of IBM WebSphere Lombardi Edition V7.2 went to Windows 7. All worked fine. Almost.

When I went on to upgrading WID 7, it turned out that there’s a glitch with JRE. It showed up right after the upgrade and am still unable to figure out what went wrong.

The upgrade process begun with Installation Manager. Nothing unusual.

Update took a few quarters and WID was ready for a spin.

Easy stuff. I however run into an issue right after I’d restarted the IM. It ended up with a popup window and the following mysterious error message – No Java virtual machine was found?!

I’ve seen it before and I knew the solution was to correct appropriate startup file for IM – C:\IBM\InstallationManager\eclipse\IBMIM.ini. There’s -vm option that points to a JRE and it was incorrect.

Correcting it was as easy as editing the file and run up the IM again. The mystery is why it happened at all? Anyone?


Comments on Developing JAX-WS web service integration solutions using WebSphere Integration Developer V7

That’s what I like the most – learning by sharing. It’s the most rewarding learning experience so far and today proved to be very productive.

There’s an article Developing JAX-WS web service integration solutions using WebSphere Integration Developer V7 on the IBM developerWorks site. It brought my attention for JAX-WS and WID7. Although the article learned me a few things I must admit I would not recommend following its guidelines to build JAX-WS Web Service with WID. There’s another tool for such a service called IBM Rational Application Developer and whenever WID and Web Services are in a sentence there’s only one thought in my mind – a SCA component with an Web Services export or import. I believe it’d have been much helpful if the article had shown a WID7-way of developing Web Services with a SCA component implemented in Java and exported with Web Services JAX-WS export. It turned out that the article made it another way and the review process at developerWorks let it go live. It could’ve been such an excellent article.

The author’s Java programming skills are also questionable. I could live with incorrect formatting of these Java snippets (that made the reading a less pleasant experience), but I couldn’t  understand why the web service was implemented the way it was. Why didn’t DescriptionLookup use a HashMap<String, String>? There should have been no Keys and Values (uppercase!), no Hashtable (synchronized structure!) and no casting to String in getDescription. In this case, less would bring more value.

The package example.federal.us.ibm.com was against the rules of Java package naming which say it should’ve been a reverse domain name, i.e. com.ibm.us.federal.example. This and the aforementioned naming and class selections which are all against the Java style formatting and naming made me wonder about the level of Java skills and how much effort dW reviewers put into the article to make it at the highest possible quality level. Sorry to say so, but it’s so obvious for any more experienced Java programmers.

When the Web Service was ready for deployment, why wasn’t WebSphere Process Server v7.0 at localhost selected? It’d be more natural (if not WAS7 itself). It can mislead to a false understanding that Monitor is really necessary for Web Services in WPS (which is not).

I would not recommend checking Generate WSDL file into the project and Generate Web Service Deployment Descriptor (shown in Figure 10.), so the Web Service is considered as an external Web Service with all its consequences like WSDL available under a given URL address. Having it more real-life-oriented would be of a huge advantage for readers.

With all that said, one could imagine I stopped paying attention to further reading and move on to other articles. Wrong.

In the series of WHAT_I_VE_LEARNT I could learn about Enable asynchronous invocation for generated client feature and Java SE’s java.util.concurrent.Future. A bit about the former is at JAX-WS Code generation in WebSphere Web services preferences. Also, you can check out the Creating a Web service from a Java bean using the IBM WebSphere JAX-WS runtime environment, but as far as that particular feature is concerned there’s nothing more than what you could read in the previous document. It seems there’s nothing to add beside the single sentence – once the option’s turned on, additional methods for asynchronous communication handling get created. It’s worth to note that the classes are generated in the client project and the most interesting piece is certainly the one that ends with Delegate. That’s where the Web Service’s methods are with their asynchronous counterparts. I’ve never stumbled upon it.

I decided to find out how easier it would’ve been to use another approach to import WSDLs and XSDs. As a IBM instructor I’d been teaching about the feature, but had never run it myself. That was the time to experience it. So, here goes a slightly improved version of the article as described in the section “Create BPEL process model application to invoke the service”.

Once you’ve created ElectronicSubmissionLib library, right-click it and select Import. Type in WSDL and select WSDL and XSD under Business Integration. Where WID shines (possibly it’s Eclipse itself, but can’t confirm it as I’m pretty newbie in this area) is the ability to import WSDL from a remote location. See the short screencast of mine – WID7’s WSDL and XSD Importh so I don’t have to type all in (it’s said that laziness is not that bad in the IT crowd). Don’t forget to have your server up and running upon importing so the URL is indeed fully functional.

With a very productive morning, I’ll leave the other part of the article for another “Reading” part of my next day.

Let me know how the screencast worked for you. Comments are highly appreciated.

Learnt today – no correlation property for BSM yields CWWBV3046E: The property ” was not found

After almost a week, I’ve been able to install Monitor Development Toolkit 7.0 with WebSphere Integration Developer 7.0 on Windows Vista. When I opened WID, the Welcome screen showed up with Samples and Tutorials.

It reminded me to give one a shot and chose Vending Machine.

Imported it as a reference and decided I’d follow along to develop my own business state machine. With 3GBs for the Parallels virtual machine I’ve been working on, it was a pleasant experience – WID worked really fast.

After a few minutes I ended up with a very rudimentary BSM and deployed it onto the instance of IBM WebSphere Process Server 7 that’s installed along with WID, if you did choose so.

The deployment however failed with a bizarre error message: CWWBV3046E: The property ” was not found. It was clear it referred to a missing correlation property I had *not* defined for the BSM (as a long-running process one’s required so you can correlate messages for a particular instance of a process that’s in this case was a business state machine).

After a correlation property was defined, everything went smoothly. I knew a correlation property should’ve been defined, but the error message CWWBV3046E wasn’t very helpful. Wouldn’t it be easier if it said “Hey, your long-running process misses a correlation property”? It’d be much easier and bring some fun too.

To remember: 1) it’s possible to (attempt to) deploy business state machine model with errors, that will eventually fail, and 2) a correlation property is required for a BSM.

Changing course slightly towards BRMS with BPM

With the IBM Certified Application Developer – WebSphere ILOG JRules V7.0 certificate and working with IBM WebSphere Business Process Management (WebSphere BPM) runtime and development environments on a daily basis, I thought I’d give BRMS and BPM a try with the products like IBM WebSphere Process Server (WPS) 7, IBM WebSphere Integration Developer (WID) 7 and IBM WebSphere ILOG JRules 7.

There’re a couple of cases where they meet business requirements very easily (and likely better than the other tandems) and so the course of the blog has changed slightly with focus on three products – ILOG JRules, WID and WPS – rather than one. I’m working with these products almost every day (on projects as a WebSphere consultant and/or as a course instructor) so it’d let me share the findings hoping there’re others out there who benefit from them too. There’s yet another idea to find some spare cycles and learn/compare with their open source alternatives – JBoss Rules (aka Drools) and Apache ODE (possibly JBoss jBPM, but I’m rather interested in WS-BPEL engines and am not sure if jBPM supports it).

Just to let you appreciate the “beauty” of IBM WebSphere Integration Developer 7, which is a integrated development environment (IDE) for IBM WebSphere Process Server, I’ve just stumbled upon a solution for my recent problem with installing it atop 64-bit Red Hat Enterprise Linux 5.5. When you delete saved files for rollback, WID7 refuses to work – Business Integration perspective and view is not available after deleting saved files for rollback. The solution is quite simple – do not remove the files. Do less to do more and you’ll be fine – isn’t it a nice solution?! 🙂