Thanks, Tom, you pointed me in the right direction. The problem was caused by the generation of the wsdl, by using the same target namespace as the name of the interface. I was incorrectly focusing on the WSDL2Java utility.

Derek.


Tom Jordahl wrote:

I think the Test.Test is a bad thing in Java. Can you have a Class named the same as the package it is in?

Did you try using a different namespace, like "http://tempuri.org/myStuff";?

--
Tom Jordahl
Macromedia Server Development



-----Original Message-----
From: Derek Eichele [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, November 27, 2002 8:29 PM
To: [EMAIL PROTECTED]
Subject: Re: Java2WSDL/WSDL2Java question


I didn't get any response to this, so I'm reposting it. I really need to understand these tools, is there a better way to learn them than trial and error and the very basic command line docs?

Any point in the right direction would be greatly appreciated.

Derek.


Derek Eichele wrote:

I am attempting to learn how to use Java2WSDL and WSDL2Java properly, but it isn't coming easily. I always get odd type names that I am forced to edit every time I generate code. I created a simple test case for demonstrative purposes, if anyone can tell me what I am doing wrong, I would appreciate it.

First I start with a very simple Java interface :

public interface Test extends java.rmi.Remote {
public int getVal(int in0) throws java.rmi.RemoteException;
}

Then, I run the following command on the interface:

java org.apache.axis.wsdl.Java2WSDL -o test.wsdl -l"http://localhost/axis/services/Test"; -n "urn:Test" Test

Which generates my wsdl:

------- Begin WSDL --------

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:Test" xmlns="http://schemas.xmlsoap.org/wsdl/"; xmlns:apachesoap="http://xml.apache.org/xml-soap"; xmlns:impl="urn:Test" xmlns:intf="urn:Test" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
<wsdl:types/>

<wsdl:message name="getValRequest">

<wsdl:part name="in0" type="xsd:int"/>

</wsdl:message>

<wsdl:message name="getValResponse">

<wsdl:part name="getValReturn" type="xsd:int"/>

</wsdl:message>

<wsdl:portType name="Test">

<wsdl:operation name="getVal" parameterOrder="in0">

<wsdl:input message="intf:getValRequest" name="getValRequest"/>

<wsdl:output message="intf:getValResponse" name="getValResponse"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="TestSoapBinding" type="intf:Test">

<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="getVal">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="getValRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:Test" use="encoded"/>

</wsdl:input>

<wsdl:output name="getValResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:Test" use="encoded"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="TestService">

<wsdl:port binding="intf:TestSoapBinding" name="Test">

<wsdlsoap:address location="http://localhost/axis/services/Test"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

------- End WSDL -------


Finally, I will then run this command to generate the server side code :

java org.apache.axis.wsdl.WSDL2Java -o . -D -s -S true test.wsdl


This creates a subdirectory called Test, and places the code there, and the files have the correct package definitions in them. But ......

The code for some of the files contains uncompilable code when refering to the created types, here is TestService.java as an example :

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

package Test;

public interface TestService extends javax.xml.rpc.Service {
public java.lang.String getTestAddress();

public Test.Test getTest() throws javax.xml.rpc.ServiceException;

public Test.Test getTest(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
}

The "Test.Test" gives me a bad type error when compiling. I have tried many different options with both tools trying to determine if it is something that I am doing that is causing this, but have had no luck. Do I have a fundamental misunderstanding? Am I missing an option on one of my commands? Any help would be appreciated.

Derek.





Reply via email to