You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Alexander Hachmann <ax...@thesofa.de> on 2006/10/30 21:31:29 UTC

Document/Literal, .Net and Array as Result

Hello,

I had a Servicemethod with the following Signature deployed in RPC/Encoded
style with Axis. 
The call worked fine and even in .Net I had no problems with retrieving the
result Array.

Public Syndication[] findByDate(Calendar from, Calendar to);

Now I have to change the Style to Document/Literal. This forced me to modify
the Signatrure to

Public Syndication[] findByDate(FindByDateParameter p); 

Now my Problem is, that calling the Service through .Net ends up in a null
result, although the SOAP Message
contains 257 Objects. Do I have to change the Resulttype in any way? Is it
possible to return Arrays?

The First few lines of the SOAP answert look like 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>
    <pReturn xmlns="http://ws.epgdata.com">
      <item xmlns="">
        <actionValue>0</actionValue>
        <actor>
        </actor>
        <additionalInfo>
        </additionalInfo>
        <ageMarker>0</ageMarker>
        <asvAid>11934825</asvAid>
        <asvSid>213-0-14466259</asvSid>
        <attribute>
        </attribute>
        <author>Von Wolfgang Wegner</author>
        <broadcastDay>20060930</broadcastDay>
        <broadcastId>20703912</broadcastId>
        <category>Information</category>
        <categoryId>500</categoryId>
        <charakter>Dokumentation</charakter>
        <collectInfo>

I Noticed, that the namespace in the items are left blank. Could this be the
reason, and where would i have to change this? The WSDL was made through
AXIS with the following WSDD:

<service name="SyndikationService" provider="java:RPC" style="document"
use="literal">
  <parameter name="className" value="com.epgdata.ws.SyndikationService"/>
  <parameter name="allowedMethods" value="findeByDate"/>
  <parameter name="scope" value="session"/>
  <requestFlow>
  	<handler type="soapmonitor"/>
  </requestFlow>
  <responseFlow>
  	<handler type="soapmonitor"/>
  </responseFlow>
  <beanMapping qname="ns:FindByDateParamter"
xmlns:ns="parameter.ws.epgdata.com" 
 
languageSpecificType="java:com.epgdata.ws.parameter.FindByDateParameter"/>
  <beanMapping qname="ns:Syndikation" xmlns:ns="api.syndication.epgdata.com"
    languageSpecificType="java:com.epgdata.syndication.api.Syndikation"/>
 </service>

Thx,
    Alexander


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


AW: Document/Literal, .Net and Array as Result

Posted by Alexander Hachmann <ax...@thesofa.de>.
Hi,

>I tried that now and it did work. Thank you! Another Issue for .Net is,
that Interfaces are 
>marked 
>as abstract="true" by Axis. .Net implements these Classes Abstract. You
need to remove this mark 
>in the Sourcecode. Otherwise .Net will nether create Objects nor throw any
Exception :-0

This is not completle True:-/ Now .Net initiates instances, but leaves the
attributes empty.
I know that this is an Axis list and not .Net. But perhaps anyone had this
experienced yet?

Thanks,
      Alexander




---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


AW: Document/Literal, .Net and Array as Result

Posted by Alexander Hachmann <ax...@thesofa.de>.
Hi,

I tried that now and it did work. Thank you! Another Issue for .Net is, that
Interfaces are marked 

as abstract="true" by Axis. .Net implements these Classes Abstract. You need
to remove this mark 

in the Sourcecode. Otherwise .Net will nether create Objects nor throw any
Exception :-0


Now i have a slight problem with axis on this service. I found threads on
this problem aswell, but no solution. 
org.xml.sax.SAXException: No object was found for class type class
java.util.Calendar
for fields with the content Type xsd:dateTime :-/ This shows me, that at
least Axis tries to create the Syndication Array but has problems with that
type. 
Any Ideas?
Thx,
   Alexander 

-----Ursprüngliche Nachricht-----
Von: Anne Thomas Manes [mailto:atmanes@gmail.com] 
Gesendet: Montag, 30. Oktober 2006 23:02
An: axis-user@ws.apache.org
Betreff: Re: Document/Literal, .Net and Array as Result

Have you tried style="wrapped"? It produces a doc/literal service, but let's
you maintain the original signature. If you want to use document style, then
you will have to define a wrapper element for your return array.

Anne

On 10/30/06, Alexander Hachmann <ax...@thesofa.de> wrote:
> Hello,
>
> I had a Servicemethod with the following Signature deployed in 
> RPC/Encoded style with Axis.
> The call worked fine and even in .Net I had no problems with 
> retrieving the result Array.
>
> Public Syndication[] findByDate(Calendar from, Calendar to);
>
> Now I have to change the Style to Document/Literal. This forced me to 
> modify the Signatrure to
>
> Public Syndication[] findByDate(FindByDateParameter p);
>
> Now my Problem is, that calling the Service through .Net ends up in a 
> null result, although the SOAP Message contains 257 Objects. Do I have 
> to change the Resulttype in any way? Is it possible to return Arrays?
>
> The First few lines of the SOAP answert look like 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>
>     <pReturn xmlns="http://ws.epgdata.com">
>       <item xmlns="">
>         <actionValue>0</actionValue>
>         <actor>
>         </actor>
>         <additionalInfo>
>         </additionalInfo>
>         <ageMarker>0</ageMarker>
>         <asvAid>11934825</asvAid>
>         <asvSid>213-0-14466259</asvSid>
>         <attribute>
>         </attribute>
>         <author>Von Wolfgang Wegner</author>
>         <broadcastDay>20060930</broadcastDay>
>         <broadcastId>20703912</broadcastId>
>         <category>Information</category>
>         <categoryId>500</categoryId>
>         <charakter>Dokumentation</charakter>
>         <collectInfo>
>
> I Noticed, that the namespace in the items are left blank. Could this 
> be the reason, and where would i have to change this? The WSDL was 
> made through AXIS with the following WSDD:
>
> <service name="SyndikationService" provider="java:RPC" style="document"
> use="literal">
>   <parameter name="className" value="com.epgdata.ws.SyndikationService"/>
>   <parameter name="allowedMethods" value="findeByDate"/>
>   <parameter name="scope" value="session"/>
>   <requestFlow>
>         <handler type="soapmonitor"/>
>   </requestFlow>
>   <responseFlow>
>         <handler type="soapmonitor"/>
>   </responseFlow>
>   <beanMapping qname="ns:FindByDateParamter"
> xmlns:ns="parameter.ws.epgdata.com"
>
> languageSpecificType="java:com.epgdata.ws.parameter.FindByDateParameter"/>
>   <beanMapping qname="ns:Syndikation"
xmlns:ns="api.syndication.epgdata.com"
>     
> languageSpecificType="java:com.epgdata.syndication.api.Syndikation"/>
>  </service>
>
> Thx,
>     Alexander
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Document/Literal, .Net and Array as Result

Posted by Anne Thomas Manes <at...@gmail.com>.
Have you tried style="wrapped"? It produces a doc/literal service, but
let's you maintain the original signature. If you want to use document
style, then you will have to define a wrapper element for your return
array.

Anne

On 10/30/06, Alexander Hachmann <ax...@thesofa.de> wrote:
> Hello,
>
> I had a Servicemethod with the following Signature deployed in RPC/Encoded
> style with Axis.
> The call worked fine and even in .Net I had no problems with retrieving the
> result Array.
>
> Public Syndication[] findByDate(Calendar from, Calendar to);
>
> Now I have to change the Style to Document/Literal. This forced me to modify
> the Signatrure to
>
> Public Syndication[] findByDate(FindByDateParameter p);
>
> Now my Problem is, that calling the Service through .Net ends up in a null
> result, although the SOAP Message
> contains 257 Objects. Do I have to change the Resulttype in any way? Is it
> possible to return Arrays?
>
> The First few lines of the SOAP answert look like 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>
>     <pReturn xmlns="http://ws.epgdata.com">
>       <item xmlns="">
>         <actionValue>0</actionValue>
>         <actor>
>         </actor>
>         <additionalInfo>
>         </additionalInfo>
>         <ageMarker>0</ageMarker>
>         <asvAid>11934825</asvAid>
>         <asvSid>213-0-14466259</asvSid>
>         <attribute>
>         </attribute>
>         <author>Von Wolfgang Wegner</author>
>         <broadcastDay>20060930</broadcastDay>
>         <broadcastId>20703912</broadcastId>
>         <category>Information</category>
>         <categoryId>500</categoryId>
>         <charakter>Dokumentation</charakter>
>         <collectInfo>
>
> I Noticed, that the namespace in the items are left blank. Could this be the
> reason, and where would i have to change this? The WSDL was made through
> AXIS with the following WSDD:
>
> <service name="SyndikationService" provider="java:RPC" style="document"
> use="literal">
>   <parameter name="className" value="com.epgdata.ws.SyndikationService"/>
>   <parameter name="allowedMethods" value="findeByDate"/>
>   <parameter name="scope" value="session"/>
>   <requestFlow>
>         <handler type="soapmonitor"/>
>   </requestFlow>
>   <responseFlow>
>         <handler type="soapmonitor"/>
>   </responseFlow>
>   <beanMapping qname="ns:FindByDateParamter"
> xmlns:ns="parameter.ws.epgdata.com"
>
> languageSpecificType="java:com.epgdata.ws.parameter.FindByDateParameter"/>
>   <beanMapping qname="ns:Syndikation" xmlns:ns="api.syndication.epgdata.com"
>     languageSpecificType="java:com.epgdata.syndication.api.Syndikation"/>
>  </service>
>
> Thx,
>     Alexander
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org