Here we go, once again. I've messed a lot since my last error, and my previous error disappeared. However, I've got a new one, still related to some type strangeness. Axis seems to consider a type as incompatible with itself.

This is what happens when I try to access the service:

faultString: Tried to invoke method public abstract com.telebahiacelular.movistore.acao.value.AcaoPKModel com.telebahiacelular.movistore.acao.interfaces.Acao.inserir(com.telebahiacelular.movistore.acao.value.AcaoModel) throws javax.ejb.CreateException,java.rmi.RemoteException with arguments com.telebahiacelular.movistore.acao.value.AcaoModel. The arguments do not match the signature.

The service is actually a Stateless Session Bean deployed on JBoss. See previous messages from this same thread.

Attached goes:

1) The SOAP request and response, as captured by tcpmon
2) The complete fault stack trace
3) The service WSDD descriptor
4) The service interface
5) The client source code

Environment: JBoss 3.2.0beta2 + Apache Axis 2002-11-26 interim drop.

--
Pazu <[EMAIL PROTECTED]>
Listen Port: 8088
Target Host: localhost
Target Port: 8080
==== Request ====
POST /jboss-net/services/Acao HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.0
Host: localhost
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 964

<?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:inserir 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:ns1="urn:telebahiacelular/movistore/acao">   
            <in0 href="#id0"/>  
         </ns1:inserir>  
         <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
xsi:type="ns2:AcaoModel" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:ns2="urn:telebahiacelular/movistore/acao">   
            <codTela xsi:type="soapenc:int">1</codTela>   
            <codUsuario xsi:type="soapenc:int">1</codUsuario>   
            <descricao xsi:type="soapenc:string">Teste WSR</descricao>   
            <descricaoResumida xsi:type="soapenc:string" xsi:nil="true"/>   
            <codigo xsi:type="soapenc:int" xsi:nil="true"/>  
         </multiRef> 
      </soapenv:Body>
   </soapenv:Envelope>

==== Response ====
HTTP/1.1 500 Internal Server Error
Date: Tue, 26 Nov 2002 18:33:35 GMT
Server: Jetty/4.1.3 (Windows 2000 5.0 x86)
Content-Type: text/xml; charset=utf-8

<?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>  
         <soapenv:Fault>   
            <faultcode 
xmlns:ns1="http://www.w3.org/2002/06/soap-envelope";>ns1:Server.generalException</faultcode>
   
            <faultstring>Tried to invoke method public abstract 
com.telebahiacelular.movistore.acao.value.AcaoPKModel 
com.telebahiacelular.movistore.acao.interfaces.Acao.inserir(com.telebahiacelular.movistore.acao.value.AcaoModel)
 throws javax.ejb.CreateException,java.rmi.RemoteException with arguments 
com.telebahiacelular.movistore.acao.value.AcaoModel.  The arguments do not match the 
signature.</faultstring>  
         </soapenv:Fault> 
      </soapenv:Body>
   </soapenv:Envelope>
AxisFault
 faultCode: {http://www.w3.org/2002/06/soap-envelope}Server.generalException
 faultSubcode: 
 faultString: Tried to invoke method public abstract 
com.telebahiacelular.movistore.acao.value.AcaoPKModel 
com.telebahiacelular.movistore.acao.interfaces.Acao.inserir(com.telebahiacelular.movistore.acao.value.AcaoModel)
 throws javax.ejb.CreateException,java.rmi.RemoteException with arguments 
com.telebahiacelular.movistore.acao.value.AcaoModel.  The arguments do not match the 
signature.
 faultActor: null
 faultNode: null
 faultDetail: 

Tried to invoke method public abstract 
com.telebahiacelular.movistore.acao.value.AcaoPKModel 
com.telebahiacelular.movistore.acao.interfaces.Acao.inserir(com.telebahiacelular.movistore.acao.value.AcaoModel)
 throws javax.ejb.CreateException,java.rmi.RemoteException with arguments 
com.telebahiacelular.movistore.acao.value.AcaoModel.  The arguments do not match the 
signature.
        at 
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:312)
        at org.jboss.net.axis.server.EJBProvider.processMessage(EJBProvider.java:233)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:332)
        at 
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126)
        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:469)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:315)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:766)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at 
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:293)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:572)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1700)
        at 
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:554)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1650)
        at org.mortbay.http.HttpServer.service(HttpServer.java:894)
        at org.jboss.jetty.Jetty.service(Jetty.java:497)
        at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
        at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:966)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
        at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:204)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
        at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:504)
Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring 
class
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at 
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:385)
        at 
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:293)
        ... 25 more
<deployment
    xmlns="http://xml.apache.org/axis/wsdd/";
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>

  <service name="Acao" provider="Handler" style="rpc" use="encoded">
      <parameter name="wsdlTargetNamespace" value="urn:telebahiacelular/movistore/acao"/>
      <parameter name="wsdlServiceElement" value="AcaoService"/>
      <parameter name="wsdlServicePort" value="Acao"/>
      <parameter name="wsdlPortType" value="Acao"/>

      <!-- EJBProvider -->
      <parameter name="handlerClass" value="org.jboss.net.axis.server.EJBProvider"/>
      <parameter name="beanJndiName" value="movistore/Acao"/>
      <parameter name="homeInterfaceName" value="com.telebahiacelular.movistore.acao.interfaces.AcaoHome"/>
      <parameter name="remoteInterfaceName" value="com.telebahiacelular.movistore.acao.interfaces.Acao"/>
      <parameter name="allowedMethods" value="inserir alterar excluir selecionarPorChave selecionarPorTela selecionarTodos"/>
      <parameter name="scope" value="Application"/>

      <typeMapping
        xmlns:ns="urn:telebahiacelular/movistore/acao"
        qname="ns:AcaoPKModel"
        type="java:com.telebahiacelular.movistore.acao.value.AcaoPKModel"
        serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
        deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
      />
      <typeMapping
        xmlns:ns="urn:telebahiacelular/movistore/acao"
        qname="ns:AcaoModel"
        type="java:com.telebahiacelular.movistore.acao.value.AcaoModel"
        serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
        deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
      />
      <typeMapping
        xmlns:ns="urn:telebahiacelular/movistore/acao"
        qname="ns:ArrayOf_xsd_anyType"
        type="java:java.lang.Object[]"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
      />
      <typeMapping
        xmlns:ns="urn:telebahiacelular/movistore/tela"
        qname="ns:TelaPKModel"
        type="java:com.telebahiacelular.movistore.tela.value.TelaPKModel"
        serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
        deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
      />
  </service>
</deployment>
/*
 * Generated by XDoclet - Do not edit!
 */
package com.telebahiacelular.movistore.acao.interfaces;

/**
 * Remote interface for Acao.
 */
public interface Acao
   extends javax.ejb.EJBObject
{
   /**
    * Altera os dados de uma acao existente.
    * @param acao a acao a ser alterada.
    */
   public void alterar( com.telebahiacelular.movistore.acao.value.AcaoModel acao )
      throws javax.ejb.FinderException, java.rmi.RemoteException;

   /**
    * Remove uma acao existente.
    * @param acao a chave da acao a ser removida
    */
   public void excluir( com.telebahiacelular.movistore.acao.value.AcaoPKModel acao )
      throws javax.ejb.RemoveException, java.rmi.RemoteException;

   /**
    * Insere uma nova acao no sistema.
    * @param acao a acao a ser inserida.
    * @returns a chave da acao que acaba de ser inserida.
    */
   public com.telebahiacelular.movistore.acao.value.AcaoPKModel inserir( com.telebahiacelular.movistore.acao.value.AcaoModel acao )
      throws javax.ejb.CreateException, java.rmi.RemoteException;

   /**
    * Seleciona uma acao a partir de sua chave.
    * @param chave a chave da acao a ser selecionada
    * @param factoryClass o nome da classe de uma AcaoModelFactory para transformar o VO.
    * @retun um ValueObject da acao selecionada, transformada de acordo com a factory.
    */
   public java.lang.Object selecionarPorChave( com.telebahiacelular.movistore.acao.value.AcaoPKModel chave,java.lang.String factoryClass )
      throws javax.ejb.FinderException, java.rmi.RemoteException;

   /**
    * Seleciona todas as acoes de uma tela.
    * @param tela a chave da tela.
    * @param factoryClass o nome da classe de uma AcaoModelFactory para transformar o VO.
    * @return um array de ValueObjects da acao selecionada, transformadas de acordo com a factory.
    */
   public java.lang.Object[] selecionarPorTela( com.telebahiacelular.movistore.tela.value.TelaPKModel tela,java.lang.String factoryClass )
      throws javax.ejb.FinderException, java.rmi.RemoteException;

   /**
    * Seleciona todas as acoes cadastradas.
    * @param factoryClass o nome da classe de uma AcaoModelFactory para transformar o VO.
    * @return um array de ValueObjects da acao selecionada, transformadas de acordo com a factory.
    */
   public java.lang.Object[] selecionarTodos( java.lang.String factoryClass )
      throws javax.ejb.FinderException, java.rmi.RemoteException;

}
package com.telebahiacelular.movistore.client;

import javax.xml.namespace.QName;

import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
import org.apache.axis.encoding.ser.BeanSerializerFactory;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import com.telebahiacelular.movistore.acao.value.AcaoModel;
import com.telebahiacelular.movistore.acao.value.AcaoPKModel;

public class TesteAcaoDII
{
    public static void main(String[] args) throws Exception
    {
        String endpoint = "http://localhost:8080/jboss-net/services/Acao";;
        Service service = new Service();
        Call call = (Call)service.createCall();

        // Type Mappings
        call.registerTypeMapping(AcaoPKModel.class,
                new QName("urn:telebahiacelular/movistore/acao", "AcaoPKModel"),
                BeanSerializerFactory.class, BeanDeserializerFactory.class);
        call.registerTypeMapping(AcaoModel.class,
                new QName("urn:telebahiacelular/movistore/acao", "AcaoModel"),
                BeanSerializerFactory.class, BeanDeserializerFactory.class);
        /*
        call.registerTypeMapping(TelaPKModel.class,
                new QName("urn:telabahiacelular/movistore/acao", "TelaPKModel"),
                BeanSerializerFactory.class, BeanDeserializerFactory.class);
        */

        call.setTargetEndpointAddress(endpoint);
        call.setOperationName(new QName("urn:telebahiacelular/movistore/acao", "inserir"));
        call.setReturnClass(AcaoPKModel.class);

        AcaoModel acao = new AcaoModel();
        acao.setCodTela(new Integer(1));
        acao.setCodUsuario(new Integer(1));
        acao.setDescricao("Descricao Completa da Acao");
        acao.setDescricaoResumida("Descricao Resumida");

        AcaoPKModel pk = (AcaoPKModel)call.invoke(new Object[] {acao});
        System.out.println("Acao inserida: " + pk);
    }
}

Reply via email to