Hi,

You asked for more specific information. I'll start with what I'm trying
to do. I have developed a web-service using "classic jax-rpc". What I
mean by classic, is that I don't use Axis, but I developed the
webservice using the JAX-RPC api and tools like wscompile. The reason
that I can't use Axis has to do with security issues. 

Classic RPC uses Soap messaging, so it should work fine with WSIF, or so
I thought. 

Here's my wsdl:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:tns="urn:Foo" xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
name="MyWSIFHelloService" targetNamespace="urn:Foo">
  <types/>
  <message name="WSIFHelloIF_sayHello">
    <part name="String_1" type="xsd:string"/></message>
  <message name="WSIFHelloIF_sayHelloResponse">
    <part name="result" type="xsd:string"/></message>
  <portType name="WSIFHelloIF">
    <operation name="sayHello" parameterOrder="String_1">
      <input message="tns:WSIFHelloIF_sayHello"/>
      <output
message="tns:WSIFHelloIF_sayHelloResponse"/></operation></portType>
  <binding name="WSIFHelloIFBinding" type="tns:WSIFHelloIF">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http";
style="rpc"/>
    <operation name="sayHello">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; use="encoded"
namespace="urn:Foo"/></input>
      <output>
        <soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; use="encoded"
namespace="urn:Foo"/>
        </output>
    </operation>
  </binding>
  <service name="MyWSIFHelloService">
    <port name="WSIFHelloIFPort" binding="tns:WSIFHelloIFBinding">
      <soap:address xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
location="http://localhost:8080/wsifhello/wsifhello"/>
    </port>
  </service>
</definitions>

Here's a sample of a soap message being send:

<?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:sayHello
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns1="urn:Foo">
   <ns1:String_1 xsi:type="xsd:string">Test</ns1:String_1>
  </ns1:sayHello>
 </soapenv:Body>
</soapenv:Envelope>

The error:

Invocation failed
JAXRPCTIE01: caught exception while handling request: deserialization
error: unexpected XML reader state. expected: END but found: START:
{urn:Foo}String_1

I think the problem is that rpc/enc doesn't support the ns1 namespace
prefixes, at least that's what I read. Is there a way to send the soap
message without it? In a previous mail you asked me if I intended to use
doc/lit, well that doesn't matter because rpc/enc and doc/lit don't
support the namespace prefix in soap messages. When I use doc/lit the
error becomes and ArrayIndexOutOfBoundsException, caused by the fact
that my input parameters aren't read correctly.

Tools I use to reproduce this error:

JWSDP 1.4 (JAX-RPC API included)
WSIF 2.0

Attached are the war file (web service) and my client code.

Kind regards,
Dylan Honorez,
[EMAIL PROTECTED]
http://www.xt-i.com

Attachment: wsifhello.war
Description: wsifhello.war

Attachment: AnotherTest.java
Description: AnotherTest.java

Reply via email to