You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Simone Maletta <si...@alice.it> on 2008/04/03 11:36:41 UTC

wsdl autogenerated error

Hi guys,
  I'm using servicemix-jsr181 to develope my work but I've some problem for auto-generated wsdl: here is my testing class:
package echo;

import java.io.Serializable;
import javax.jws.*;
import java.util.*;

@WebService
public class Echo
{

        private void Echo()
        {
        }

        @WebMethod
        @WebResult(name ="EchoReturnObject")
        public EchoReturnObject echo(@WebParam(name ="req")String in)
        {
                EchoReturnObject p = new EchoReturnObject();
                p.resp=in;
                p.i=0;
                System.out.println(p.resp+" "+p.i);
                return p;
        }
}

class EchoReturnObject implements Serializable
{
        String resp;
        int i;
}


and here is my deploy file:


<beans xmlns:xfire="http://xfire.codehaus.org/config/1.0"
       xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:wc="urn:/echo.wsdl">


   <jsr181:endpoint annotations="jsr181" service="wc:echoService">
        <jsr181:pojo>
        <!--    <bean class="echo.Echo"/> -->
       
        <bean id="echoService" class="echo.Echo"/>
                <tx:advice id="txAdvice">
                        <tx:attributes>
                                <tx:method name="echo" readOnly="true"/>
                        </tx:attributes>
                </tx:advice>
               
                <aop:config>
                        <aop:pointcut id="echoServiceOperation" expression="excecution(* echo.Echo.*(...))"/>
                        <aop:advisor advice-ref="txAdvice" pointcut-ref="echoServiceOperation"/>
                </aop:config>
        </jsr181:pojo>
    </jsr181:endpoint>
</beans>

and here is the auto-generated WSDL:

DEBUG - Jsr181Component                - <?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:/echo.wsdl" xmlns:ns1="http://echo" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="urn:/echo.wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <wsdl:types>
    <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="urn:/echo.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="echo">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="req" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="echoResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="Resp" nillable="true" type="ns1:EchoReturnObject"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
    <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://echo" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="EchoReturnObject"/>
</xsd:schema>
  </wsdl:types>
  <wsdl:message name="echoResponse">
    <wsdl:part name="parameters" element="tns:echoResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="echoRequest">
    <wsdl:part name="parameters" element="tns:echo">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="echoServicePortType">
    <wsdl:operation name="echo">
      <wsdl:input name="echoRequest" message="tns:echoRequest">
    </wsdl:input>
      <wsdl:output name="echoResponse" message="tns:echoResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
</wsdl:definitions>


The return type is empty: it does not generate the type following the class.
I'm using servicemix 3.1.2 but I upgraded the module to the 3.2 version as seen in the nabble: http://www.mail-archive.com/user@xfire.codehaus.org/msg01746.html
but nothing change.

Where the problem come from??
May I control this without changing servicemix component?
Thank you very much guys, please help me!!!!
Cheers,
                                   Simone 

Re: wsdl autogenerated error

Posted by Guillaume Nodet <gn...@gmail.com>.
Have you tried annotating your pojo with the required jaxb2 annotations ?
Look at the generated beans for the wsdl-first example ...

On Thu, Apr 3, 2008 at 11:36 AM, Simone Maletta <si...@alice.it> wrote:
> Hi guys,
>   I'm using servicemix-jsr181 to develope my work but I've some problem for auto-generated wsdl: here is my testing class:
>  package echo;
>
>  import java.io.Serializable;
>  import javax.jws.*;
>  import java.util.*;
>
>  @WebService
>  public class Echo
>  {
>
>         private void Echo()
>         {
>         }
>
>         @WebMethod
>         @WebResult(name ="EchoReturnObject")
>         public EchoReturnObject echo(@WebParam(name ="req")String in)
>         {
>                 EchoReturnObject p = new EchoReturnObject();
>                 p.resp=in;
>                 p.i=0;
>                 System.out.println(p.resp+" "+p.i);
>                 return p;
>         }
>  }
>
>  class EchoReturnObject implements Serializable
>  {
>         String resp;
>         int i;
>  }
>
>
>  and here is my deploy file:
>
>
>  <beans xmlns:xfire="http://xfire.codehaus.org/config/1.0"
>        xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0"
>        xmlns:tx="http://www.springframework.org/schema/tx"
>        xmlns:aop="http://www.springframework.org/schema/aop"
>        xmlns:wc="urn:/echo.wsdl">
>
>
>    <jsr181:endpoint annotations="jsr181" service="wc:echoService">
>         <jsr181:pojo>
>         <!--    <bean class="echo.Echo"/> -->
>
>         <bean id="echoService" class="echo.Echo"/>
>                 <tx:advice id="txAdvice">
>                         <tx:attributes>
>                                 <tx:method name="echo" readOnly="true"/>
>                         </tx:attributes>
>                 </tx:advice>
>
>                 <aop:config>
>                         <aop:pointcut id="echoServiceOperation" expression="excecution(* echo.Echo.*(...))"/>
>                         <aop:advisor advice-ref="txAdvice" pointcut-ref="echoServiceOperation"/>
>                 </aop:config>
>         </jsr181:pojo>
>     </jsr181:endpoint>
>  </beans>
>
>  and here is the auto-generated WSDL:
>
>  DEBUG - Jsr181Component                - <?xml version="1.0" encoding="UTF-8"?>
>  <wsdl:definitions targetNamespace="urn:/echo.wsdl" xmlns:ns1="http://echo" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="urn:/echo.wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
>   <wsdl:types>
>     <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="urn:/echo.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>  <xsd:element name="echo">
>  <xsd:complexType>
>  <xsd:sequence>
>  <xsd:element maxOccurs="1" minOccurs="1" name="req" nillable="true" type="xsd:string"/>
>  </xsd:sequence>
>  </xsd:complexType>
>  </xsd:element>
>  <xsd:element name="echoResponse">
>  <xsd:complexType>
>  <xsd:sequence>
>  <xsd:element maxOccurs="1" minOccurs="1" name="Resp" nillable="true" type="ns1:EchoReturnObject"/>
>  </xsd:sequence>
>  </xsd:complexType>
>  </xsd:element>
>  </xsd:schema>
>     <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://echo" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>  <xsd:complexType name="EchoReturnObject"/>
>  </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="echoResponse">
>     <wsdl:part name="parameters" element="tns:echoResponse">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:message name="echoRequest">
>     <wsdl:part name="parameters" element="tns:echo">
>     </wsdl:part>
>   </wsdl:message>
>   <wsdl:portType name="echoServicePortType">
>     <wsdl:operation name="echo">
>       <wsdl:input name="echoRequest" message="tns:echoRequest">
>     </wsdl:input>
>       <wsdl:output name="echoResponse" message="tns:echoResponse">
>     </wsdl:output>
>     </wsdl:operation>
>   </wsdl:portType>
>  </wsdl:definitions>
>
>
>  The return type is empty: it does not generate the type following the class.
>  I'm using servicemix 3.1.2 but I upgraded the module to the 3.2 version as seen in the nabble: http://www.mail-archive.com/user@xfire.codehaus.org/msg01746.html
>  but nothing change.
>
>  Where the problem come from??
>  May I control this without changing servicemix component?
>  Thank you very much guys, please help me!!!!
>  Cheers,
>                                    Simone
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/