Hi,
if u change ur deployment descriptor from <service name="Connectivity"
style="document"> to <service name="Connectivity" provider="java:RPC">, you will get
the wsdl displayed correctly.
i am getting the output.(root element is displayed)..
regards,
Kiran.
-----Original Message-----
From: Wes Devauld [mailto:[EMAIL PROTECTED]]
Sent: Monday, January 20, 2003 10:52 PM
To: [EMAIL PROTECTED]
Subject: Automatic ?WSDL
Hello,
I'm having a problem getting Axis to automatically generate a WSDL for a
deployed web service. My end goal is to have a .NET c# client consume a
Axis web service that returns XML documents. First the Java Code:
------------------
package GMML.interfaces.literal;
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class ConnectivityTest {
public org.w3c.dom.Element connectivity () {
Element toReturn = null;
Element firstLevelChild = null;
Element secondLevelChild = null;
Document document = null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
//create a new document
document = builder.newDocument();
toReturn = (Element) document.createElement("Root");
firstLevelChild = (Element) document.createElement("level1");
secondLevelChild = (Element) document.createElement("level2");
document.appendChild(toReturn);
toReturn.appendChild(firstLevelChild);
firstLevelChild.appendChild(secondLevelChild);
} catch (Exception e) {
e.printStackTrace();
}
return toReturn;
}
}
----------------------------
Now the .wsdd file:
----------------------------
<deployment xmlns="http://xml.apache.org/axis/wsdd/">
<service name="Connectivity" style="document">
<parameter name="className"
value="GMML.interfaces.literal.ConnectivityTest"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
----------------------------
If I use Java2WSDL everything works ok, but if I go to
http://localhost:8080/axis/services/Connectivity?wsdl
I get the following errors:
----------------------------
AXIS error
Sorry, something seems to have gone wrong... here are the details:
Fault - WSDLException: faultCode=PARSER_ERROR: Problem parsing '- WSDL
Document -'.: The value of the attribute "xmlns:tns1" is invalid. Prefixed
namespace bindings may not be empty.: org.xml.sax.SAXParseException: The
value of the attribute "xmlns:tns1" is invalid. Prefixed namespace bindings
may not be empty.
at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:267)
at
org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:20
1)
at com.ibm.wsdl.xml.WSDLWriterImpl.getDocument(Unknown Source)
at com.ibm.wsdl.xml.WSDLWriterImpl.getDocument(Unknown Source)
at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:269)
at
org.apache.axis.providers.java.JavaProvider.generateWSDL(JavaProvider.java:4
78)
at org.apache.axis.strategies.WSDLGenStrategy.visit(WSDLGenStrategy.java:72)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)
at org.apache.axis.SimpleChain.generateWSDL(SimpleChain.java:143)
at
org.apache.axis.handlers.soap.SOAPService.generateWSDL(SOAPService.java:368)
at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:491)
at
org.apache.axis.transport.http.AxisServlet.processWsdlRequest(AxisServlet.ja
va:434)
at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:286)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:
339)
...
-----------------------------------------
Secondly, with Java2WSDL, and WSDL2Java I create stubs and they work fine,
but when I use a Test client with the following code:
-------------------------------
package GMML.interfaces.literal;
import org.w3c.dom.Element;
public class Test {
public static void main(String[] argv) {
ConnectivityTestServiceLocator locator = new
ConnectivityTestServiceLocator();
try {
ConnectivityTest service = locator.getConnectivity();
Element returned = service.connectivity();
if(returned != null) {
System.out.println(service.connectivity().toString());
}
else {
System.out.println("Returned NULL");
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
-------------------------
I don't get the <daRoot> element back; The element I get starts at <level1>,
but I can see the <daRoot> element in the wire trace. This isn't as big of
an issue because I can just pad in another element, but it would be nice if
I didn't have to.
Any ideas on what is causing the first error? And do you see any other
forecoming pitfalls?
Thanks,
-Wes
This e-mail and any files transmitted with it are for the sole use of the intended
recipient(s) and may contain confidential and privileged information.
If you are not the intended recipient, please contact the sender by reply e-mail and
destroy all copies of the original message.
Any unauthorised review, use, disclosure, dissemination, forwarding, printing or
copying of this email or any action taken in reliance on this e-mail is strictly
prohibited and may be unlawful.
Visit us at http://www.cognizant.com