Tag Archives: wid

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.


Troubleshooting WID installation – UPDI required

It’s been a while since I worked with IBM WebSphere Integration Developer (WID) V7 on RedHat Enterprise Linux (RHEL) 5.5 as a VMware image so when I booted it up it turned out it needed Fix Pack installation.

When I run Update in IBM Installation Manager (IM) it ended up with the following error message.

It recalled me the past experiences with updating IBM Rational Application Developer (RAD) 7.5 and WID 7 on MS Windows Vista that I worked around with renaming the directory with fixes in the installation CD. I couldn’t believe no one run across the issue and thought I’d google it.

It’s the configuration of the affected WTE installation.

[root@wid7 bi_v7]# pwd
[root@wid7 bi_v7]# ./bin/versionInfo.sh -help
WVER0010I: Copyright (c) IBM Corporation 2002, 2005, 2008; All rights reserved.
WVER0012I: VersionInfo reporter version, dated 8/9/08

-format This option specifies the output format, either ''text'' or ''html''.
-file This option specifies an output file. A file name must be provided with the ''-file'' option.
-long This option causes all maintenance package and component information to be displayed.
-maintenancePackages This option causes maintenance packages to be displayed.
-maintenancePackageDetail This option causes maintenance package detail to be displayed.
-components This option causes components to be displayed.
-componentDetail This option causes component detail to be displayed.
-help This option causes help text to be displayed.
-usage This option causes this usage text to be displayed.
[root@wid7 bi_v7]# ./bin/versionInfo.sh -maintenancePackages
WVER0010I: Copyright (c) IBM Corporation 2002, 2005, 2008; All rights reserved.
WVER0012I: VersionInfo reporter version, dated 8/9/08

IBM WebSphere Application Server Product Installation Status Report

Report at date and time September 21, 2010 10:48:03 AM CEST

Product Directory /opt/IBM/WID7_WTE/runtimes/bi_v7
Version Directory /opt/IBM/WID7_WTE/runtimes/bi_v7/properties/version
DTD Directory /opt/IBM/WID7_WTE/runtimes/bi_v7/properties/version/dtd
Log Directory /opt/IBM/WID7_WTE/runtimes/bi_v7/logs
Backup Directory /opt/IBM/WID7_WTE/runtimes/bi_v7/properties/version/nif/backup
TMP Directory /tmp

Product List
WBI installed
XML installed
SCA installed
ND installed

Installed Product
Name IBM WebSphere Process Server
Build Level of1016.06
Build Date 4/22/10
Architecture Intel (32 bit)

Installed Product
Name XML Feature Pack
Build Level cf051014.03
Build Date 4/6/10
Architecture Intel (32 bit)

Installed Product
Name SCA Feature Pack
Build Level cf051019.05
Build Date 5/15/10
Architecture Intel (32 bit)

Installed Product
Name IBM WebSphere Application Server - ND
Build Level wps0946.04
Build Date 11/18/09
Architecture Intel (32 bit)

Installed Maintenance Package
Maintenance Package ID
Description WebSphere Application Server Cumulative iFix
Build Date 11/18/2009

Installed Maintenance Package
...removed for simplicity's sake
End Installation Status Report
[root@wid7 bi_v7]# ./bin/versionInfo.sh -maintenancePackages |egrep -e IFPK98944 -e SDKPM00452
Maintenance Package ID
Maintenance Package ID 7.0.0.x-SDKPM00452

There’re lots of packages displayed and those two ones were listed too.

After some time of reading a couple of documents about IM, the installation process for WID and other BPM products as well as googling for these two packages, I finally found a document Installation Instructions for IBM WebSphere Business Compass V7.0.0.0 Fix Pack 3 ( where IFPK98944.pak was mentioned.

Any interim fixes that have been installed using the Update Installer (UPDI) must be removed with the Update Installer before starting V7.0.0 Fix Pack 3 activities. Two interim fixes were installed silently during the V7.0.0.0 install: SDKPM00452.pak and<platform><arch>-IFPK98944.pak. These will need to be removed, if you have not already done so.

It quickly occurred to me that I should install IBM Update Installer (UPDI) and uninstall the packages. I had never used UPDI this way, so with all the troubles, it was a quite nice addition to my toolbox machinery. I downloaded the current version of UPDI from IBM Update Installer V7.0.0.11 for WebSphere Software for Linux.

Run UPDI that already figured out what WAS I wanted to work with – it was the WTE from WID installation.

UPDI allowed me to pick the first package for uninstallation – SDKPM00452.pak.

Upon having selected the Next > button, it displayed what I was about to have uninstalled.

After a couple of minutes SDKPM00452.pak was gone.

I pressed the Relaunch button to go on with the other package – IFPK98944.

It might’ve turned out to have been more involved, but I merely noted it and moved on.

The second uninstallation was a bit longer – around twice as long as the former. IFPK98944 was gone.

After around 10 minutes, I was ready to launch the IM again and update the WID and WTE packages.

Another 1 hour and the installation finished with no failures or warnings.

As the last step in making sure all went fine I opened File > View Installed Packages where all the updates were listed.

I’m so happy again. On to reading the article Static and dynamic relationships in WebSphere Process Server and WebSphere ESB V7 at developerWorks.