Deconstructing CWWBA0135E: Class ‘x’ does not have a feature named ‘y’

 CWWBA0135E: Unable to execute the query expression ‘Customer/custId’ on message part ‘x’ Class ‘y’ does not have a feature named ‘Customer’

I received this error when attempting to start a binary state machine from the BPEL API.

Allow me to discuss what this exception message is trying to tell us.

CWWBA0135E: Unable to execute the query expression ‘Customer/custId’

I have made it to the point where a quert expression for the XPATH ‘Customer/custId’ is running.

on message part ‘x’

The WSDL message part name for the message that is traveling over the wire is ‘x’. If you look at the WSDL you’ll see this information.

Class ‘y’

In IBM ‘Exception-speak’ a ‘Class’ really means a Business Object. The exception is being thrown by the Eclipse EMF framework and WebSphere Process Server doesn’t try to do anything to convert from EMF’s terminology to WPS.

does not have a feature named ‘Customer’

In IBM ‘Exception-speak’ a ‘feature’ really means a business objects attribue. This is another EMF-term that leaks forward in Process Server.

So, what is the exception telling us?

“When attempting to run the xpath query expression ‘Customer/custId’ on the wsdl message named ‘x’, the attribute ‘y’ of the wsdl message named ‘x’ does not have a child attribute named ‘Customer'”.

Simplifying it again:

The WSDL message has an attribute y but the attribute y does not have an attribute named customer. Restated in xpath:

wsdl:message/y/ exists
wsdl:message/y/Customer does not exist.

I would verify that the type that it being sent to the API call is correct and that the root of the xpath expression is actually the correct type. I bet that there is an intermediary object ‘z’ that would make the expression true:

wsdl:message/y/z/Customer exists.

Author: dan

Leave a Reply

Your email address will not be published. Required fields are marked *