Normally when a web application is deployed to WebSphere, the "exploded" .EAR file resides in a directory similar to
C:\Programs\IBM\WebSphere\AppServer\profiles\AppSrv01\installedApps\<your computer name here>Node01Cell\<EAR file name here>\<WAR file name here>
Most changes to files underneath this directory structure are reflected in the application after the web application is re-started. However, making changes to web.xml here will not have any effect. Instead, WebSphere stores a copy of web.xml in
C:\Programs\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\<your computer name here>Node01Cell\applications\<EAR file name here>\deployments\<context root here>\<WAR file name here>\WEB-INF\web.xml
that it actually heeds. Misleading, eh?
Labels
.net
(1)
*nix
(1)
administration
(1)
Android
(2)
Axis2
(2)
best practice
(5)
big-data
(1)
business-analysis
(1)
code re-use
(1)
continuous-integration
(1)
Cordova-PhoneGap
(1)
database
(2)
defect
(1)
design
(3)
Eclipse
(7)
education
(1)
groovy
(2)
https
(2)
Hudson
(4)
Java
(1)
JAX-RS
(2)
Jersey
(3)
Jetty
(1)
localization
(1)
m2eclipse
(2)
MapForce
(1)
Maven
(12)
MySQL
(1)
Nexus
(4)
notes
(4)
OO
(1)
Oracle
(4)
performance
(1)
Perl
(1)
PL/SQL
(1)
podcast
(1)
PostgreSQL
(1)
requirement
(1)
scripting
(1)
serialization
(1)
shell
(1)
SoapUI
(1)
SQL
(1)
SSH
(2)
stored procedure
(1)
STS
(2)
Subclipse
(1)
Subversion
(3)
TOAD
(3)
Tomcat
(4)
UML
(2)
unit-testing
(2)
WAMP
(1)
WAS
(3)
Windows
(3)
WP8
(2)
WTP
(2)
XML
(4)
XSLT
(1)
Thursday, January 22, 2015
Tuesday, December 2, 2014
WebSphere, ADMA5006E, and java.lang.NullPointerException
After compiling some code with the Oracle JDK,
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
I deployed to WebSphere I got the following error:
ADMA5006E: An error occurred configuring [my application name] in WebSphere Application Server repository: java.lang.NullPointerException
After adjusting my JAVA_HOME to point at the WebSphere Java,
java version "1.6.0"
Java(TM) SE Runtime Environment (build pwa6460_26sr7fp1ifix-20140220_01(SR7 FP1+
IX90136+IX90137))
IBM J9 VM (build 2.6, JRE 1.6.0 Windows 7 amd64-64 Compressed References 2013123
0_180580 (JIT enabled, AOT enabled)
I was able to deploy to WebSphere. While the javac command did not specify the target Java version, and the version 1.8 byte code may have problems running on a version 1.6 platform, getting a java.lang.NullPointerException doesn't seem like well-written error handling?
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
I deployed to WebSphere I got the following error:
ADMA5006E: An error occurred configuring [my application name] in WebSphere Application Server repository: java.lang.NullPointerException
After adjusting my JAVA_HOME to point at the WebSphere Java,
java version "1.6.0"
Java(TM) SE Runtime Environment (build pwa6460_26sr7fp1ifix-20140220_01(SR7 FP1+
IX90136+IX90137))
IBM J9 VM (build 2.6, JRE 1.6.0 Windows 7 amd64-64 Compressed References 2013123
0_180580 (JIT enabled, AOT enabled)
I was able to deploy to WebSphere. While the javac command did not specify the target Java version, and the version 1.8 byte code may have problems running on a version 1.6 platform, getting a java.lang.NullPointerException doesn't seem like well-written error handling?
Monday, August 11, 2014
xsi:type and XMLSpy support
As always, something new to learn, even when it is something old! xsi:type enables overriding the default type of an element with a derived type. See:
Using xsi:type
Using Derived Types in Instance Documents
In terms of Altova XMLSpy support though, my understanding is that with XMLSpy Enterprise Edition 2014, rel. 2 sp1, the Schema tab/view does not indicate that there are derived types available for an element's type, nor does it support switching to view the structure of these derived types. However the Text tab/view does support auto-completing with any of the derived types once we type xsi:type=
Wednesday, July 16, 2014
UMLet quick-start guide
UMLet is a simple but effective software design tool. It compares favorably against heavyweights such as Microsoft Visio. Some key things to know for the beginner or someone who hasn't used it in awhile:
- To duplicate an element, double-click the element
- Adjust the arrow head or line format by adjusting the text in the Properties pane
- To select, press Ctrl and then mouse-drag around the elements you want
Friday, June 27, 2014
Joel Test: Applicability in 2014?
I think the Joel Test is still very applicable in 2014, almost 15 years later. While organizations should be considering doing more than the list states in its brief yes/no questions, the Joel Test serves as a minimum baseline that organizations cannot dismiss or argue with. Therefore, I don't believe the Joel Test needs updating.
However, some worthy, relatively recent elaborations on the Joel Test include:
Being a consultant, I find the Joel Test applicable to new projects I join, rather than applying it to an organization. When leading a project, it is also a good checklist.
However, some worthy, relatively recent elaborations on the Joel Test include:
Being a consultant, I find the Joel Test applicable to new projects I join, rather than applying it to an organization. When leading a project, it is also a good checklist.
Wednesday, June 18, 2014
Where do you find WebSphere Application Server port information?
For WAS 8.5.5.2, to find port information, on the left-side of the admin GUI, Servers > Server Types > WebSphere application servers.
Then, on the main part of the GUI, choose your server, then Configuration tab > Communication sub-section > Ports

Then, on the main part of the GUI, choose your server, then Configuration tab > Communication sub-section > Ports
Wednesday, June 11, 2014
Notes on "The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)"
- Joel Spolsky's blog post
- Unicode is a "character set", which does not state how it is stored
- Misconception: That Unicode is simply a 16-bit code where each character takes 16 bits and therefore there are 65,536 possible characters; Unicode is not an encoding
- In Unicode, letters map to "code points", e.g. U+0041 rather than bits, e.g. 0100 0001
- Different fonts display code points differently
- Unicode can define more than 65,536 characters
- In UTF-8, an "encoding" (how string is stored in memory, disk, etc.), every code point from 0-127 is stored in a single byte. Only code points 128 and above are stored using 2, 3, up to 6 bytes.
- UTF-16 stores in two bytes only, not more than 2 bytes
- It does not make sense to have a string without knowing what encoding it uses. You simply cannot display it correctly or even figure out where it ends
Sunday, February 9, 2014
Connecting to Nexus 7 device for debugging on Windows 8.1
While the instructions Using Hardware Devices and OEM USB Drivers are adequate, here's my experience setting up my 2nd generation Nexus 7 on Windows 8.1 Pro.
When connecting the device to my computer's USB port, Windows does recognize it and installs drivers, but treats the device as a Music Player:
and from adb, I do see the device listed when doing the command "adb devices".
When connecting the device to my computer's USB port, Windows does recognize it and installs drivers, but treats the device as a Music Player:
At this point, adb does not recognize the device for development purposes:
However, after following the instructions for the Google USB Driver, I get the following:
and from adb, I do see the device listed when doing the command "adb devices".
Saturday, February 8, 2014
Registering device for Windows Phone 8 development
In order for the phone to be registered for development, it also needs to be browse-able in File Explorer when the phone is connected. In my experience, the most common problem is assuming that any USB cable is compatible when in fact some cables are only useful for charging: Windows Phone 8 is not detected by your computer
When there are problems you may see the following screens:
When there are problems you may see the following screens:
When the phone is properly detected, you will see the following:
Upon clicking "Register", if your phone is also connected to the Internet, you will see the following in moments and be able to deploy your applications to the device:
Thursday, February 6, 2014
Setting up Apache Cordova/PhoneGap
Based on following the steps in the official PhoneGap documentation, the following document augments that information with more details, specifically around setting up on Windows 8 and for developing Windows Phone 8/Android apps:
Setting up Apache Cordova/PhoneGap (version controlled)
Setting up Apache Cordova/PhoneGap (version controlled)
Friday, October 25, 2013
OutOfMemoryError with Java
Recently had to investigate an OutOfMemoryError issue possibly caused by my Java code. Some tools/information I have found useful so far are:
- VisualVM - profiler that you probably already have installed. Check for <JAVA_HOME>/bin/jvisualvm.exe
- If you have problems installing plugins that you need, for example, as above, download and install manually
- If you encounter a "Cannot connect to service" error, consider attempting with JConsole first by running <JAVA_HOME>/bin/jconsole -debug to determine the reason why; Troubleshooting connection problems in JConsole
- Generations - describes Java memory management. It will help you interpret the graphs in the Visual GC plugin
- Understanding Weak References - never heard of weak references in the context of Java? Me too
Thursday, October 3, 2013
Hudson having problem with Subversion: hudson.model.Job.hasCascadingProject()Z
One day, a few of our Hudson jobs (but not all) started to have this error when executing.
This turns out to be at the Subversion check-out step:
You can click on "Update credentials" to go to a screen to enter in your credentials. But you might get the following error:
At this point, check the file-system of your Hudson server. Under <HUDSON_HOME>\jobs\<Job name> you may notice that compared to Jobs that are working, the problematic job does not have a "subversion.credentials" file. Copy over this file as-is to the directory. No Hudson re-start is necessary; just go back to the Dashboard and choose the problematic Job. From this point, you should be able to choose "Update credentials" and work through the screens without getting an unhelpful
error. FYI, this is Hudson ver. 2.1.2 and our Subversion server location changed, which may have caused this issue.
FATAL: hudson.model.Job.hasCascadingProject()Z java.lang.NoSuchMethodError: hudson.model.Job.hasCascadingProject()Z at hudson.scm.PerJobCredentialStore.getXmlFile(PerJobCredentialStore.java:137) at hudson.scm.PerJobCredentialStore.<init>(PerJobCredentialStore.java:58) at hudson.scm.SubversionSCM$DescriptorImpl.createAuthenticationProvider(SubversionSCM.java:1820) at hudson.scm.SubversionSCM$DescriptorImpl.getRepository(SubversionSCM.java:2069) at hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:2039) at hudson.scm.SubversionSCM.repositoryLocationsNoLongerExist(SubversionSCM.java:2272) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:748) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:711) at hudson.model.AbstractProject.checkout(AbstractProject.java:1229) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:507) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424) at hudson.model.Run.run(Run.java:1367) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:145)
This turns out to be at the Subversion check-out step:
You can click on "Update credentials" to go to a screen to enter in your credentials. But you might get the following error:
HTTP ERROR 500
Problem accessing /hudson/job/PWS-OCDT/descriptorByName/hudson.scm.SubversionSCM/postCredential. Reason:hudson.model.Job.hasCascadingProject()Z
Caused by:
java.lang.NoSuchMethodError: hudson.model.Job.hasCascadingProject()Z at hudson.scm.PerJobCredentialStore.getXmlFile(PerJobCredentialStore.java:137)
At this point, check the file-system of your Hudson server. Under <HUDSON_HOME>\jobs\<Job name> you may notice that compared to Jobs that are working, the problematic job does not have a "subversion.credentials" file. Copy over this file as-is to the directory. No Hudson re-start is necessary; just go back to the Dashboard and choose the problematic Job. From this point, you should be able to choose "Update credentials" and work through the screens without getting an unhelpful
hudson.model.Job.hasCascadingProject()Z
error. FYI, this is Hudson ver. 2.1.2 and our Subversion server location changed, which may have caused this issue.
Tuesday, July 9, 2013
Software development and JavaScript podcast
While looking for a Java development podcast (still looking!), I came across JavaScript Jabber. While the focus is JavaScript, there are episodes with more generic topics like Software Team Dynamics. The podcasters are all experienced developers from various backgrounds (e.g. .NET, Ruby, etc.), the audio quality is good, and the shownotes are excellent. Furthermore, they have sponsors so you know they have great content that attracts listeners.
Subscribe to:
Posts (Atom)

