Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Language IDEs » ServerTools (WTP) » Automatic generation of WS client produces non-compiling classes
Automatic generation of WS client produces non-compiling classes [message #212512] Fri, 18 April 2008 09:32
Eclipse UserFriend
Originally posted by:

Hello - sorry, that I in some sense repeat that question
(news://$p9f$ here, but I
tried some more and I was hoping that someone could maybe point me to
some other place to look or ask for help?

As far as I understand, the generated client is 'confused' by the fact
that it states xsd:boolean as base, but an xsd:pattern value="0|1".

I tried creating the ws client with Axis 1 and Axis 2, the first
approach gives the non-compiling code as described below (previous
post), the second approach produces code which compiles, but contains
non-functional code like:

public void setBooleanType(boolean param) {
if (java.lang.String.valueOf(param).matches("0|1")) {
this.localBooleanType = param;
} else {
throw new java.lang.RuntimeException();
[as the valueOf will always give "true|false" back]

Is this a problem of the underlying WSDL not being allowed in this form?
Or is it a problem with the tools creating the client?

Thanks a lot for any help,


Hi - I have a problem generating a Web Services client from an existing
web service from its WSDL - the generated code contains errors and
cannot compile.

The problem is that the wsdl file uses an MXMeta.xsd which contains
among other things these definitions:

<xsd:simpleType name="BooleanType">
<xsd:restriction base="xsd:boolean">
<xsd:pattern value="0|1" />

<xsd:complexType name="MXBooleanType">
<xsd:extension base="BooleanType">
<xsd:attribute name="changed" type="ChangeIndicatorType"
use="optional" />

From that I generate the web services client, which results in this
code in

public class MXBooleanType implements,
org.apache.axis.encoding.SimpleType {
private java.lang.Boolean changed; // attribute

public MXBooleanType() {

// Simple Types must have a String constructor
public MXBooleanType(boolean _value) {

which shows a compile error at the last super(_value) because there is
no such constructor for java.long.Object.

This looks like it missed to create the BooleanType, and making
MXBooleanType and extension of it. In this way, no actual boolean value
is kept anywhere ...

I tried the latest stable Europa release of Eclipse JEE
(eclipse-jee-europa-fall2-win32) and the latest build
(20080304-0640_eclipse-jee-ganymede-M5-win32.win32.x86) - both with the
same results.

I tried to fix that with two approaches:

1. fix the MXMeta.xsd to read:
<xsd:complexType name="MXBooleanType">
<xsd:extension base="xsd:boolean">
<xsd:attribute name="changed" type="ChangeIndicatorType"
use="optional" />

2. add explicit code for a boolean value to the generated

In both cases I will get compiling code, but the variable of type
MXBooleanType will still not be set correctly from the SOAP response
(which does contain values) - so somehow the machinery still doesn't
pick it up correctly.

Thanks for any help and hints!
Previous Topic:Escape special characters.
Next Topic:The service implementation selected is invalid.
Goto Forum:

Current Time: Tue May 30 11:10:47 GMT 2017

Powered by FUDForum. Page generated in 0.01961 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software