JavaEEWebSphere

WebSphere plugin development

Overview

This page provides useful information for the WebSphere serverplugin development.

WebSphere installation

If you are using Ubuntu then ensure that /bin/sh is pointing to /bin/bash, not /bin/dash. If the /bin/dash is used the profile creation will fail.

WebSphere plugin code

The code is located under serverplugins/websphere6 in the NetBeans source tree.

Current state

  • Plugin available on update center (version 1.2, 8/27/07), throws exception on install (http://www.netbeans.org/issues/show_bug.cgi?id=120368).
  • Current trunk version can be installed, however simple deploy of war to WAS Trial Express 6.0 fails with message "A virtual host is not specified for Web module". Same with simple ear containing just war. This information should be stored in WEB-INF/ibm-web-bnd.xml.
  • If the WEB-INF/ibm-web-bnd.xml is created the ide supports its editing and application can be deployed, but can't be started because it is deployed to root context (already occupied).
  • WebSphere specific configuration files are not created because the old configration API is still used (http://www.netbeans.org/issues/show_bug.cgi?id=123271).


Comment (PavelBuzek): can we fix some of these problems and put a newer version on update center?

Arathi Krishnaiyengar is working on this.

Questions & TODO

  • There is no need for any package in serverplugin to be public - fix it for ws
  • Rewrite DeploymentConfigurations to ModuleConfiguration
  • Remove dead code such as DDException, ConfigurationSupportImpl, WSDDBeanRoot and WSDeployableObject
  • Correct the server validation for 6.1 (can lead to some server version specific parts of the code)
  • Correct the deployment classloader (can lead to some server version specific parts of the code)
  • Get rid of WSDebug, use java.util.Logging
  • Revalidate the deployment - unfortunately WebSphere does not provide much useful messages
  • Remote server seems to be unsupported

Proposals

  • WebSphere can't deploy simple war - precisely it can, but you must specify the deployment plan which seems to be a well kept secret (otherwise war is deployed to '/')
  • Solution could be to store simple application.xml as deployment plan (DeploymentPlanConfiguration.save()) and to get it and create simple ear wrapper in DeploymentManager.distribute(). Storing deployment descriptor as deployment plan is already used in JBoss plugin. This could be problematic as modules deployed this way are not listed as war when asking for available modules later. However seems to be doable - see the posted patch.
  • The other possible way could be do investigate the deployment plan created in older version of the plugin (with NetBeans 5.5) and produce the same structure through the new API. The sample of the deployment plan created by API is here.


Comment (PavelBuzek): how do real WS users deploy web apps?

I'm not a real WS user, but from what I know they use admin console or admin command delivered with WebSphere.

Patches

This patch for the trunk provides war and ear deployment functionality (ejb not tested). It is not well tested, however seems to be working. It is based on the first proposal. Note that in order to mark it as webmodule, there must be file META-INF/was.webmodule in wrapping ear - that seems to be the trick. This patch also contains minor code cleanup. It is basic work and shouldn't be considered as the final state.

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo