Hi Mike,

The InputData and OutputData are simple JavaBean classes as:

package dev.axis2.ws.data;

public class InputData {
    private String data;

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }
}

Recently I've tried with the last snapshot and with the Axis2 1.3 RC1 that 
Deepal proposed to me.

Now the SOAP response has changed to:

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope";>
  <soapenv:Body>
    <ns:testDataResponse xmlns:ns="http://service.ws.axis2.dev";>
      <ns:return type="dev.axis2.ws.data.OutputData">
        <ns:data>datos de entrada</ns:data>
      </ns:return>
    </ns:testDataResponse>
  </soapenv:Body>
</soapenv:Envelope>

The solution is near but not sufficient. The return element that encloses the 
data element now has a type attribute but the client continues to launch an 
unexpected subelement exception due to incorrect namespace for data.

- I generated the clients in ADB mode.

Any more ideas? I will continue investigating..

Thanks all

Jose

Mike Patton <[EMAIL PROTECTED]> escribió: Jose,
   
  Does your OutputData class extend a java collection object or similar data 
type? If so, then this is why you are getting such an error. You should return 
a single element; even if you have an array or so to return, wrap that in a 
property of another class and return that other type instead.
  Hope that helps.
   
  Mike
   
   
   
   
   
   
  

Jose Luis Alba <[EMAIL PROTECTED]> wrote:
  Hi,

- I'm using Axis2 1.2

I've create a POJO  test web service that resides in package 
dev.axis2.ws.service and uses in/out bean data from package dev.axis2.ws.data. 

The interface is:

package dev.axis2.ws.service;

import dev.axis2.ws.data.InputData;
import dev.axis2.ws.data.OutputData;

public interface TestService {
    public OutputData testData(InputData input);
}

1) When I use automatic wsdl generation from Axis (in the services.xml file) 
all goes well. Here is the SOAP response of the execution:

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope";>
  <soapenv:Body>
    <ns:testDataResponse xmlns:ns="http://service.ws.axis2.dev/xsd";>
      <ns:return>
        <data  xmlns="http://data.ws.axis2.dev/xsd";>datos de entrada</data>
          </ns:return>
      </ns:testDataResponse>
  </soapenv:Body>
</soapenv:Envelope>

2) Things goes wrong when I use the parameter useOriginalWsdl in the 
services.xml file. Here the services.xml file:

<service name="TestService">
  <messageReceivers>
    <messageReceiver
      mep="http://www.w3.org/2004/08/wsdl/in-only";
      class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    <messageReceiver
      mep="http://www.w3.org/2004/08/wsdl/in-out";
      class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
  </messageReceivers>
  <parameter  locked="false" 
name="ServiceClass">dev.axis2.ws.service.TestServiceImpl</parameter>
  <parameter locked="false" name="useOriginalwsdl">true</parameter>
  <parameter locked="false" name="modifyUserWSDLPortAddress">true</parameter>
</service>

The SOAP response I receive in the client side is:

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope";>
  <soapenv:Body>
    <ns:testDataResponse xmlns:ns="http://service.ws.axis2.dev/xsd";>
      <ns:return>
        <ns:data>datos de entrada</ns:data>
      </ns:return>
    </ns:testDataResponse>
  </soapenv:Body>
</soapenv:Envelope>

In this case the namespace for the data element (it should map to 
http://data.ws.axis2.dev/xsd)  is missing and the client throws and Unexpected 
subelement exception.

I have tried:

- Axis2 1.2
- Axis2 1.1.1
- Axis2 last snapshot
- Using the wsdl generated automatically
- Using the wsld generated by axis2 tools (ant task and by command line)

In all cases the behavior is the same: Unexpeted subelement and the missing 
namespace in the response message.

Could you help me please? Thanks in advance!

Jose Luis


    
---------------------------------
  
Sé un Mejor Amante del Cine
¿Quieres saber cómo? ¡Deja que otras personas te ayuden! .


        

---------------------------------
Get the free Yahoo! toolbar and rest assured with the added security of spyware 
protection.  

       
---------------------------------

Sé un Mejor Amante del Cine
¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.

Reply via email to