1 Reply Latest reply on Oct 5, 2007 6:09 AM by asoldano

    error runtime modeler error: Wrapper class ... is not found

    fantagir

      Hi!

      I'm developing a Client of a WebService and when a I run it I've the next error:

      com.sun.xml.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class service.jaxws.DarCuenta is not found. Have you run APT to generate them?

      My environment is:

      Eclipse and JbossIDE for Eclipse
      Jboss 4.0.5 GA
      JDK 1.5
      JWSDP 2.0

      My WSDL:

      <?xml version="1.0" encoding="UTF-8"?>
      <definitions name='Contar' targetNamespace='urn:service' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:ns1='urn:service.types' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='urn:service' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
       <types>
       <schema targetNamespace='urn:service.types' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='urn:service.types' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
       <complexType name='DatePalabra'>
       <sequence>
       <element name='longitud' nillable='true' type='string'/>
       <element name='palabra' nillable='true' type='string'/>
       </sequence>
       </complexType>
       </schema>
       </types>
       <message name='IContar_darCuenta'>
       <part name='String_1' type='xsd:string'/>
       </message>
       <message name='IContar_darCuentaResponse'>
       <part name='result' type='ns1:DatePalabra'/>
       </message>
       <portType name='IContar'>
       <operation name='darCuenta' parameterOrder='String_1'>
       <input message='tns:IContar_darCuenta'/>
       <output message='tns:IContar_darCuentaResponse'/>
       </operation>
       </portType>
       <binding name='IContarBinding' type='tns:IContar'>
       <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
       <operation name='darCuenta'>
       <soap:operation soapAction=''/>
       <input>
       <soap:body namespace='urn:service' use='literal'/>
       </input>
       <output>
       <soap:body namespace='urn:service' use='literal'/>
       </output>
       </operation>
       </binding>
       <service name='Contar'>
       <port binding='tns:IContarBinding' name='IContarPort'>
       <soap:address location='REPLACE_WITH_ACTUAL_URL'/>
       </port>
       </service>
      </definitions>
      
      

      My code of client:

      Main:

      package main;
      
      import java.net.URL;
      
      import javax.xml.namespace.QName;
      import javax.xml.ws.Service;
      
      import service.DatePalabra;
      import service.IContar;
      
      import com.lasalle.util.resources.CollectionProperties;
      
      
      public class MainDevPalabra {
      
       public static void main( String[] args ) throws Exception {
       if( args.length < 1 )
       {
       System.out.println( "Usage: Palabra name" );
       System.exit( 0 );
       }
      
       String argument = args[ 0 ];
      
       DatePalabra dp = new DatePalabra();
      
       //CollectionProperties propietats = new CollectionProperties();
       String urlstr = CollectionProperties.getPropiedad("serviceD.url");
       String nameServiceStr = CollectionProperties.getPropiedad("serviceD.name");
       String namespaceServiceStr = CollectionProperties.getPropiedad("serviceD.namespace");
      
       System.out.println( "Contacting webservice at " + urlstr );
      
       URL url = new URL(urlstr);
      
       //se indican el namespace en el que se encuentra el servicio y su nombre
       //(esto se puede ver en el WSDL)
       QName qname = new QName(namespaceServiceStr,
       nameServiceStr);
      
      
       Service service = Service.create(url, qname);
      
       System.out.println( "After create service" );
      
       IContar age = ( IContar) service.getPort( IContar.class );
      
       System.out.println( "After getPort" );
      
       System.out.println( "age.age(" + argument + ")" );
       dp = (DatePalabra) age.darCuenta(argument);
       System.out.println( "output longitud:" + dp.getLongitud() );
       System.out.println( "output palabra:" + dp.getPalabra() );
       }
      
      
      }
      


      Interface of the service:

      package service;
      
      import java.rmi.RemoteException;
      
      import javax.jws.WebMethod;
      import javax.jws.WebResult;
      import javax.jws.WebService;
      import javax.jws.WebParam;
      
      @WebService(
       name="IContar", // wsdl:portType
       targetNamespace="urn:service" //wsdl:targetNamespace
       )
      
      public interface IContar extends java.rmi.Remote
      {
      
       //@WebMethod(operationName="darCuenta")
       @WebMethod
       //@WebResult(name="IContar_darCuentaResponse", partName="result")
       //public DatePalabra darCuenta(@WebParam(name = "String_1") String name) throws RemoteException;
       public DatePalabra darCuenta(String name) throws RemoteException;
      }
      


      Can you help me??

      Thanks