axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Russell Butek" <bu...@us.ibm.com>
Subject Re: Bugs in AXIS Alpha 3 version
Date Fri, 25 Jan 2002 15:17:41 GMT
1.  char type problem.  You are correct.  Java2WSDL does not handle char
types.  That is because there is no equivalent primitive type in XML.  It
would be better if we printed an error saying that, though, rather than
throwing a NullPointerException.

2.  overloaded methods problem.  This is a known problem.  We've fixed our
bug this week.  Unfortunately, we depend on WSDL4J which also has a bug.
They've been notified of it.  Now, instead of only getting one registerChar
method, you get one of them twice.  I would caution you on using overloaded
methods if you can avoid it.  There are a number of places where operations
are referred to only by name, not by signature (deploy.wsdd).  So even if
this particular bug is fixed, I worry that there may be deeper issues that
we'll run into.

4.  service registration problem.  I'm a bit puzzled here.  What do you
mean by registering a service named "urn:register"?  That's a namespace,
not a service.  And when I ran Java2WSDL/WSDL2Java my deploy.wsdd has:
<service name="RegistrationServer".  Could you show me exactly what you
changed in the stub?  Keep in mind that I'm running the latest driver, so I
might have some fix that isn't in alpha 3.

Russell Butek
butek@us.ibm.com


Ramon Turnes <ramon.turnes-perez@hermes.si> on 01/25/2002 06:22:54 AM

Please respond to axis-user@xml.apache.org

To:    "'axis-user@xml.apache.org'" <axis-user@xml.apache.org>
cc:
Subject:    Bugs in AXIS Alpha 3 version




Hi,

I have started to use AXIS Alpha 3 version and I have found several
problems.


1 - Generation of WSDL file from the following interface causes Java2Wsdl
to
crash:

//Begin of interface

package register;

import java.util.*;

public interface RegistrationServer {
    public String registerChar(char cvalue);
}

//end of interface

****************************************************************
java org.apache.axis.wsdlgen.Java2Wsdl
-l"http://localhost:8080/axis/services/RegistrationServer"
-n"urn:register" -p"register" "urn:register" -o RegistrationServer.wsdl
register.RegistrationServer

java.lang.NullPointerException
        at org.apache.axis.wsdlgen.Types.getWsdlQName(Types.java:386)
        at org.apache.axis.wsdlgen.Types.writePartType(Types.java:143)
        at
org.apache.axis.wsdlgen.Emitter.writePartToMessage(Emitter.java:571)
        at
org.apache.axis.wsdlgen.Emitter.writeRequestMessage(Emitter.java:532)

        at org.apache.axis.wsdlgen.Emitter.writeMessages(Emitter.java:442)
        at org.apache.axis.wsdlgen.Emitter.writePortType(Emitter.java:423)
        at org.apache.axis.wsdlgen.Emitter.getWSDL(Emitter.java:224)
        at org.apache.axis.wsdlgen.Emitter.emit(Emitter.java:188)
        at org.apache.axis.wsdlgen.Java2Wsdl.main(Java2Wsdl.java:278)

****************************************************************

does it have problems handling char types?

2 - Either Java2Wsdl or Wsdl2java (I believe the latter) has problems
handling
overloaded functions in interfaces. If I generate WSDL file from the
following
interface:

//Begin of interface

package register;

import java.util.*;

public interface RegistrationServer {
    public String register(int intvalue);
    public String register(double dbvalue);
}

//End of interface

and use the resulting WSDL file to generate Stubs and Skeletons I get the
following
interface:

//Begin of interface

/**
 * RegistrationServerPortType.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis Wsdl2java emitter.
 */

package register;

public interface RegistrationServerPortType extends java.rmi.Remote {
    public java.lang.String register(int arg0) throws
java.rmi.RemoteException;
}

//End of interface

****************************************************************************

*

% java org.apache.axis.wsdlgen.Java2Wsdl
-l"http://localhost:8080/axis/services/RegistrationServer"
-n"urn:register" -p"register" "urn:register" -o RegistrationServer.wsdl
register.RegistrationServer

% java org.apache.axis.wsdl.Wsdl2java -o . -d Session -s -Nurn:register
register RegistrationServer.wsdl

****************************************************************************

*

This does not happen if I rename one of the register functions in the
interface.

4-In the above examples I am trying to register a service named
"urn:register" but the deployment wsdd
file registers a service named RegistrationServerPort while
RegistrationServerSoapBindingStub class
is trying to locate a service named "urn:register" so the Client is not
able
to invoke the service. I get
the following error:

****************************************************************************

*

Remote Exception caught: The AXIS engine could not find a target service to
invoke!
targetService is urn:register

****************************************************************************

*

Everything works fine if I change manually the code in the stub class to
search for
a service named RegistrationServerPort as it appears in the deploy.wsdd
file.


Perhaps I should have sent this question to the developers list.

Thanks.



--------------------------------------
Ramon Turnes Perez
HERMES SoftLab, Litijska 47
1000 Ljubljana, SLOVENIA
Phone: +386 1 5865 638
Fax:     +386 1 5865 270
E-mail: ramon@hermes.si
www.hermes-softlab.com
--------------------------------------




Mime
View raw message