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 Vinicius Carvalho <ja...@gmail.com> on 2006/01/30 20:29:37 UTC

Problems with CGLIB enhancements

Hello there! I've my WS configured My wsdd looks like this:

<service name="AlterarPlanoServiceImpl" provider="java:RPC" style="document"
use="literal">
      <parameter name="wsdlTargetNamespace" value="
http://impl.alterarplano.services.cplus.way.com"/>
      <parameter name="wsdlServiceElement"
value="AlterarPlanoServiceImplService"/>
      <parameter name="schemaQualified" value="
http://cidade.persistence.model.cplus.way.com,http://impl.alterarplano.services.cplus.way.com,http://pacote.persistence.model.cplus.way.com,http://assinante.persistence.model.cplus.way.com
"/>
      <parameter name="wsdlServicePort" value="AlterarPlanoServiceImpl"/>
      <parameter name="className" value="
com.way.cplus.services.alterarplano.endpoint.AlterarPlanoEndPoint"/>
      <parameter name="wsdlPortType" value="AlterarPlanoServiceImpl"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <operation name="alterarPlano" qname="alterarPlano" soapAction="">
        <parameter xmlns:pns="
http://impl.alterarplano.services.cplus.way.com" xmlns:tns="
http://assinante.persistence.model.cplus.way.com" qname="pns:assinante"
type="tns:Assinante"/>
        <parameter xmlns:pns="
http://impl.alterarplano.services.cplus.way.com" xmlns:tns="
http://pacote.persistence.model.cplus.way.com" qname="pns:novoPacote"
type="tns:Pacote"/>
      </operation>
      <parameter name="allowedMethods" value="alterarPlano"/>

      <typeMapping xmlns:ns="
http://assinante.persistence.model.cplus.way.com" qname="ns:Assinante"
type="java:com.way.cplus.model.persistence.assinante.Assinante" serializer="
org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="
org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <typeMapping xmlns:ns="http://cidade.persistence.model.cplus.way.com"
qname="ns:Cidade" type="java:com.way.cplus.model.persistence.cidade.Cidade"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""/>
      <typeMapping xmlns:ns="http://pacote.persistence.model.cplus.way.com"
qname="ns:PacotePK" type="java:
com.way.cplus.model.persistence.pacote.PacotePK" serializer="
org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="
org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <typeMapping xmlns:ns="http://pacote.persistence.model.cplus.way.com"
qname="ns:Pacote" type="java:com.way.cplus.model.persistence.pacote.Pacote"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""/>
      <arrayMapping xmlns:ns="
http://impl.alterarplano.services.cplus.way.com" xmlns:cmp-ns="
http://www.w3.org/2001/XMLSchema" qname="ns:ArrayOf_xsd_anyType" type="java:
java.lang.Object[]" innerType="cmp-ns:anyType" encodingStyle=""/>
      <typeMapping xmlns:ns="
http://assinante.persistence.model.cplus.way.com" qname="ns:AssinantePK"
type="java:com.way.cplus.model.persistence.assinante.AssinantePK"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""/>
  </service>

Well, the problem is that's not Assinante who's being transfered over the
wire, but an enhanced version by CGLIB (it was loaded by Hibernate)

So I end up with this:

org.springframework.remoting.RemoteAccessException: Cannot access remote
service [{
http://impl.alterarplano.services.cplus.way.com}AlterarPlanoServiceImpl];
nested exception is org.apache.axis.AxisFault: ; nested exception is:
    java.io.IOException: No serializer found for class
com.way.cplus.model.persistence.assinante.Assinante$$EnhancerByCGLIB$$bc19766fin
registry
org.apache.axis.encoding.TypeMappingDelegate@3cb075
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: java.io.IOException: No serializer found for class
com.way.cplus.model.persistence.assinante.Assinante$$EnhancerByCGLIB$$bc19766fin
registry
org.apache.axis.encoding.TypeMappingDelegate@3cb075
 faultActor:
 faultNode:
 faultDetail:
    {http://xml.apache.org/axis/}stackTrace:java.io.IOException: No
serializer found for class
com.way.cplus.model.persistence.assinante.Assinante$$EnhancerByCGLIB$$bc19766fin
registry
org.apache.axis.encoding.TypeMappingDelegate@3cb075


Any ideas?

Regards