Descripción del Problema
Al hacer una llamada a un web service sobre un proyecto J2EE recibimos el siguiente error:
java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
Esto en particular apareció la primera vez al utilizar el Trailblazer (ejemplo) de JBoss ESB sobre JBoss 4.2.2.
El método donde encontramos el problema es:
public static void request(WebCustomer customer) { try { InitialContext iniCtx = new InitialContext(); Service service = Service.create( new URL("http://localhost:8080/trailblazer/LoanBroker?wsdl"), new QName("http://localhost/trailblazer","LoanBrokerService") ); LoanBrokerInterface port = (LoanBrokerInterface)service. getPort(LoanBrokerInterface.class ); port.RequestLoan(customer);
} catch (Exception e) { e.printStackTrace(); } }
}
La excepción se produce en
port.RequestLoan(customer)
Causas
El problema se origina al usar JBoss con JDK 6. Sabemos que, al menos, el problema se sucita con JBoss 4.2.2 o inferior debido a un cambio en las librerías de manejo de web services (en particular, saaj.jar).
Solución
Usar JDK 5.