Cory wrote:
> Using "document" in the wsdd is just telling Axis that when it generates the WSDL for this thing,
> it should tell the world (via soap:operation style="document") that the the message's that are sent
> to you should NOT be fashioned as RPC style messages
I'm not letting Axis generate the WSDL, and I do have
<soap:operation soapAction="SubscriptionServicePort#subscribe" style="document"/>
(The latest version is here: http://www.public.asu.edu/~wsmoak/xml/webauth.wsdl)
So yes, I hope I'm announcing to the world that I want a plain old XML file in the body of the message, one that matches one of the schemas in the <types> section.
I'm down to a new and improved error message:
g:\irm\sharedsource\services>java edu.asu.vpia.webauth.SubscriptionClient -lhttp
://localhost:81/svcdev/services/MySubscriptionService
Using endpointURL: http://localhost:81/svcdev/services/MySubscriptionService
org.xml.sax.SAXException: Bad types (class java.lang.String -> class edu.asu.vpi
a.webauth.Subscription)
And by using tcpmon, I think I've determined that my Client class is the problem. It's based on the Client from example3, and it's sending this:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:subscribe soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="MySubscriptionService">
<userId xsi:type="xsd:string">nobody</userId>
<password xsi:type="xsd:string">passwd</password>
</ns1:subscribe>
</soapenv:Body>
</soapenv:Envelope>
Pretty close, actually. <subscribe> should be <subscription>, but that's controlled by the line:
call.setOperationName( new QName("MySubscriptionService", "subscribe") );
If I change it, I get:
No such operation 'subscription'
It's not sending the SOAPAction either. What does the Java client code look like for a document/literal message, one that has XML matching something in the <types> section of the wsdl? Can you do it with the Call class, or is that only for RPC calls? Client code is here: http://www.public.asu.edu/~wsmoak/xml/SubscriptionClient.java
--
Wendy Smoak
Applications Systems Analyst, Sr.
Arizona State University, PA, IRM
