Hi,

This looks to me as if it is a library problem. If you have bundled up the CXF classes in a war file then this will probably be what is happening.

Explanation as follows:

The JBoss implementation of SOAPMessage is an abstract class which provides default implementations of get/setProperty. The implementation is in a jar in $JBOSS_HOME/server/<servername>/deploy/jbossws.sar. The saaj jar which implements this abstract type also provides a META-INF/services file to define the SOAPMessage --> SOAPMessageImpl mapping. The file name is the fully qualified name of the SOAPMessage class and the contents of the file is a single line containing the fully qualified name of the implementation class. The mapped version of SOAPMessageImpl in the saaj implementation jar provided by JBoss relies upon inheriting these methods.

Now, if your app bundles the cxf libs into a war file under WEBINF/lib then it will be picking up its implementation of SOAPMessage from a CXF lib which does not provide the get/setProperty methods. However, the SOAFPFactory finder will still be trying to instantiate the JBoss SOAPMessageImpl.class because the resource lookup it employs to identify which class to use will find the META-INF/services mapping file. You need to add META-INF/services files to your war which establish the correct mapping from the CXF saaj SOAPMessage class to the appropriate SOAPMessageImpl class in the CXF libs -- actually, I am not sure that the target for the map in CXF is called SOAPMessageImpl, perhaps Dan, Willem et al could advise.

You may also find that jboswws.sar remaps several other classes which are looked up by a factory finder. You will probably need to add remap files in your war for these as well.

regards,

Andrew Dinn
-----------
(JBoss Transactions developer)

Jeff Yu wrote:
Hi,

It seems error from your web app code, since it says: "

java.lang.UnsupportedOperationException: s
etProperty must be overridden by all subclasses of SOAPMessage

"
can you show more codes...

Thanks
Jeff



shaminda perera wrote:
Hi all,

This is the scenario.
I created a WSDL and the generated the server side and client side code
using the WSDL2Java tool. After that i published the Web service in Jetty,,
as done by the generated server code.
The web service is working fine when i tested it using a standalone client.

I am having a web application which is deployed in JBoss. Now i need to
access the Web service thru a client which sits in this web application.
However, now i am now getting the following error:
11:05:26,030 FATAL [application] javax.ejb.EJBTransactionRolledbackException:
java.lang.UnsupportedOperationException: s
etProperty must be overridden by all subclasses of SOAPMessage
javax.faces.el.EvaluationException:
javax.ejb.EJBTransactionRolledbackException:
java.lang.UnsupportedOperationException
: setProperty must be overridden by all subclasses of SOAPMessage
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke
(MethodBindingMethodExpressionAdapter.java:9
1)
        at com.sun.faces.application.ActionListenerImpl.processAction(
ActionListenerImpl.java:91)
        at javax.faces.component.UICommand.broadcast(UICommand.java:383)

This comes up when i am calling the Webservice methods using the generated
client side stub.

This does not come when i run the Web service client in standalone.

Appreciate if someone can help or give any feedback.

Thanks in advance.



--
JBoss, a Division of Red Hat
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire,
SI4 1TE, United Kingdom.
Registered in UK and Wales under Company Registration No. 3798903
Directors: Michael Cunningham (USA), Charlie Peters (USA) and David Owens (Ireland)


Reply via email to