Oops, one more slip of the pasting finger! Here is the correct version of those last three mappings

  META-INF/services/javax.xml.soap.MetaFactory
  META-INF/services/javax.xml.soap.SOAPFactory
  META-INF/services/javax.xml.ws.spi.Provider

should each contain a single line, respectively,

  com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl
  com.sun.xml.messaging.saaj.soap.SOAPFactoryImpl
  org.apache.cxf.jaxws.spi.ProviderImpl

regards,


Andrew Dinn
-----------

Andrew Dinn wrote:
Hi shaminda,

Actually, I believe I have misled you slightly. The required mapping is for MessageFactory, not SOAPMessage. The mapping is provided by jboss in file jboss-saaj.jar which provides a file called

  META-INF/services/javax.xml.soap.MessageFactory

You need to remap this by installing a corresponding file in your .war file. It needs to contain the following single line of text

  com.sun.xml.messaging.saaj.soap.DynamicMessageFactoryImpl

I also added the following resource map files to my .war file in order to get the bundled cxf libs to operate correctly

  META-INF/services/javax.xml.soap.MetaFactory
  META-INF/services/javax.xml.soap.SOAPFactory
  META-INF/services/javax.xml.ws.spi.Provider

The appropriate mapping targets were, respectively,

  com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl
  com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl
  com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl

regards,


Andrew Dinn
-----------

shaminda perera wrote:
Thanks Andrew and Jeff for the quick reply..

See below for some a more detailed stacktrace,,, if that helps..

....

12:18:05,101 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)

        at org.ajax4jsf.component.AjaxViewRoot.processEvents(
AjaxViewRoot.java:186)

        at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(
AjaxViewRoot.java:164)

        at org.ajax4jsf.component.AjaxViewRoot.processApplication(
AjaxViewRoot.java:352)

        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(
InvokeApplicationPhase.java:97)

        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java
:251)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java
:117)

        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:290)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:206)

        at com.company.filter.doFilter(CompanyFilter.java:26)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:206)

        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(
SeamFilter.java:63)

at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java
:57)

        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(
SeamFilter.java:49)

        at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(
HotDeployFilter.java:60)

        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(
SeamFilter.java:49)

        at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java
:45)

        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(
SeamFilter.java:49)

at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java
:79)

        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(
SeamFilter.java:49)

        at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:206)

at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java
:141)

        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:206)

        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(
ReplyHeaderFilter.java:96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:206)

        at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:230)

        at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:175)

        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(
SecurityAssociationValve.java:179)

        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(
AuthenticatorBase.java:433)

        at org.jboss.web.tomcat.security.JaccContextValve.invoke(
JaccContextValve.java:84)

        at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:128)

        at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:104)

        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(
CachedConnectionValve.java:157)

        at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:109)

        at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:241)

        at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:844)

        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(
Http11Protocol.java:580)

        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(
JIoEndpoint.java:447)

        at java.lang.Thread.run(Thread.java:619)

Caused by: javax.ejb.EJBTransactionRolledbackException:
java.lang.UnsupportedOperationException: setProperty must be ove

rridden by all subclasses of SOAPMessage

at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java
:87)

at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)

        at org.jboss.aspects.tx.TxInterceptor$Required.invoke(
TxInterceptor.java:195)

        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(
MethodInvocation.java:101)

        at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(
TxPropagationInterceptor.java:76)

        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(
MethodInvocation.java:101)

        at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(
StatefulInstanceInterceptor.java:83)

        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(
MethodInvocation.java:101)

        at org.jboss.aspects.security.AuthenticationInterceptor.invoke(
AuthenticationInterceptor.java:77)

        at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(
Ejb3AuthenticationInterceptor.java:106)

        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(
MethodInvocation.java:101)

        at org.jboss.ejb3.ENCPropagationInterceptor.invoke(
ENCPropagationInterceptor.java:46)

        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(
MethodInvocation.java:101)

        at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(
AsynchronousInterceptor.java:106)

        at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(
MethodInvocation.java:101)

        at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(
StatefulContainer.java:204)

        at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(
StatefulLocalProxy.java:100)

        at $Proxy232.getXXX(Unknown Source)

        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:597)

        at org.jboss.seam.util.Reflections.invoke(Reflections.java:20)

        at org.jboss.seam.intercept.RootInvocationContext.proceed(
RootInvocationContext.java:31)

        at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(
ClientSideInterceptor.java:72)

        at org.jboss.seam.intercept.SeamInvocationContext.proceed(
SeamInvocationContext.java:57)

        at org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(
RemoveInterceptor.java:40)

        at org.jboss.seam.intercept.SeamInvocationContext.proceed(
SeamInvocationContext.java:69)

        at org.jboss.seam.intercept.RootInterceptor.invoke(
RootInterceptor.java:103)

        at org.jboss.seam.intercept.ClientSideInterceptor.invoke(
ClientSideInterceptor.java:50)

        at org.javassist.tmp.java.lang.Object_$$_javassist_25.getTracks
(Object_$$_javassist_25.java)

        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:597)

        at org.apache.el.parser.AstValue.invoke(AstValue.java:131)

        at org.apache.el.MethodExpressionImpl.invoke(
MethodExpressionImpl.java:276)

        at com.sun.facelets.el.TagMethodExpression.invoke(
TagMethodExpression.java:68)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke
(MethodBindingMethodExpressionAdapter.java:7

7)

        ... 47 more

Caused by: javax.xml.ws.WebServiceException:
java.lang.UnsupportedOperationException: setProperty must be overridden by

all subclasses of SOAPMessage

at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(
ClientImpl.java:304)

at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java
:242)

        at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(
ClientProxy.java:164)

        at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(
ClientProxy.java:150)

        at $Proxy335.findXXX(Unknown Source)

        at com.company.WebServiceAbstractPagedRepository.findByPage
(WebServiceAbstractPagedReposito

ry.java:57)

        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:597)

        at org.jboss.seam.util.Reflections.invoke(Reflections.java:20)

        at org.jboss.seam.intercept.RootInvocationContext.proceed(
RootInvocationContext.java:31)

        at org.jboss.seam.intercept.SeamInvocationContext.proceed(
SeamInvocationContext.java:57)

        at org.jboss.seam.interceptors.RollbackInterceptor.aroundInvoke(
RollbackInterceptor.java:34)

        at org.jboss.seam.intercept.SeamInvocationContext.proceed(
SeamInvocationContext.java:69)

        at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(
BijectionInterceptor.java:47)

        at org.jboss.seam.intercept.SeamInvocationContext.proceed(
SeamInvocationContext.java:69)



On 10/17/07, Andrew Dinn <[EMAIL PROTECTED]> wrote:
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)






--
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