23 julio, 2021

Solucionar la excepción: The ServiceClass object does not implement the required method in the following form: OMElement

¿Obtienes el siguiente error al invocar a tu servicio desde el cliente?

Exception in thread "main" org.apache.axis2.AxisFault: The ServiceClass object does not implement the required method in the following form: OMElement suma(OMElement e)

at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:508)

at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:368)

at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:414)

at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225)

at org.apache.axis2.client.OperationClient.execute(OperationClient.java:150)

at edu.aprendec.facilito.ws.server.CalculadoraImplStub.suma(CalculadoraImplStub.java:178)

at edu.aprendec.facilito.main.Main.main(Main.java:14)


Solución

Dirigirse al archivo service.xml dentro del proyecto que contiene el Web service y actualizar la la siguiente porción de código resaltada en negrita.

<service name="CalculadoraImpl" >
<Description>
Please Type your service description here
</Description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass" locked="false">edu.aprendec.facilito.ws.server.CalculadoraImpl</parameter>
</service>


por

<service name="CalculadoraImpl" >
<Description>
Please Type your service description here
</Description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver  mep="http://www.w3.org/ns/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass" locked="false">edu.aprendec.facilito.ws.server.CalculadoraImpl</parameter>
</service>

Reiniciar el servidor y probar de nuevo el cliente.

No hay comentarios, ¡cuéntame algo!

Me gustaría saber tu opinión. ¡Saludos!