No idea what would cause an IncompatibleClassChangeError.   That sounds 
like a classloader issue with classes occuring in multiple classloaders.   
Ick.  

Dan


On Monday 08 October 2007, Jarada, Hussam wrote:
> Thank Dan for your feedback,
>
> wsdl2java 2.0.2 generate the following classes with following
> annotation
>
>
> @WebService(targetNamespace = "http://madcap.aol.com/2007/06";, name =
> "MadcapPort")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface MadcapPort extends java.io.Serializable
> {
> ...
> }
> AND
>
> @javax.jws.WebService(name = "MadcapPort", serviceName =
> "MadcapService",
>                       portName = "Madcap",
>                       targetNamespace =
> "http://madcap.aol.com/2007/06";,
>
>                       wsdlLocation =
> "file:/C:/svnwork/reg/trunk/reg/reg-ws/ws-madcap/src/wsdl/madcap.wsdl"
> , endpointInterface =
> "com.aol.madcap._2007._06.MadcapPort")
> public class MadcapPortImpl implements MadcapPort
> {
> ...
> }
>
> So per your suggestions I did first
>
> JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
>
> factory.setServiceClass(com.aol.madcap._2007._06.MadcapPort.class);
>       factory.setAddress(getServiceURL());
>
> factory.setWsdlURL("file:../webapps/rsp-websvc-3.0/WEB-INF/classes/MET
>A- INF/wsdl/madcap.wsdl");
>       MadcapPort port = (com.aol.madcap._2007._06.MadcapPort)
> factory.create();
>
> Cause setWsdlLocation() does not exists in the factory interface so I
> am using setWsdlURL()
>
> But got exception as follows
>
> org.apache.cxf.service.factory.ServiceConstructionException: Could not
> find definition for service
> {http://madcap.aol.com/2007/06}MadcapPortService.
>       at
> org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.jav
>a: 114)
>       at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServi
>ce FromWSDL(ReflectionServiceFactoryBean.java:189)
>       at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initialize
>Se rviceModel(ReflectionServiceFactoryBean.java:246)
>       at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(Ref
>le ctionServiceFactoryBean.java:136)
>       at
> org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(Abstrac
>tE ndpointFactory.java:83)
>       at
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.jav
>a: 50)
>       at
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFacto
>ry Bean.java:82)
>       at
> com.aol.reg.rsp.adapter.madcap.MADCAPAdapter.getService(MADCAPAdapter.
>ja va:65)
>       at
> com.aol.reg.rsp.adapter.madcap.ExtServiceMADCAPImpl.nameSuggestionMADC
>AP (ExtServiceMADCAPImpl.java:84)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> Then I updated the code as follows
>
> private static final QName QNAME_SERVICE_NAME = new
> QName("http://madcap.aol.com/2007/06";, "MadcapService");
> ...
>
>
> JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
>
> factory.setServiceClass(com.aol.madcap._2007._06.MadcapPort.class);
>       factory.setAddress(getServiceURL());
>
> factory.setWsdlURL("file:../webapps/rsp-websvc-3.0/WEB-INF/classes/MET
>A- INF/wsdl/madcap.wsdl");
>       factory.setServiceName(QNAME_SERVICE_NAME);
>       MadcapPort port = (com.aol.madcap._2007._06.MadcapPort)
> factory.create();
>
>
> But got java.lang.reflect.InvocationTargetException with details
> java.lang.IncompatibleClassChangeError
>
> Can u please help me in resolve above? Do I need to set any setting in
> the factory?
>
> Thanks in advance,
> Hussam Jarada
>
> -----Original Message-----
> From: Daniel Kulp [mailto:[EMAIL PROTECTED]
> Sent: Friday, October 05, 2007 5:23 PM
> To: [email protected]
> Cc: Jarada, Hussam
> Subject: Re: Invalid namespace with CXF 2.0.2 wsdl2java
>
>
> The problem is that wsdl2java generates JAX-WS compatible code, but
> you are using the simple frontend (instead of the jax-ws frontend)
> without specifying the wsdl. (just the service address)
>
> Most likely, you would just need to change the :
> new ClientProxyFactoryBean();
> to
> new JaxWsProxyFactoryBean();
> and it may work fine.
>
> Alternatively, you may be able to call factory.
> factory.setWsdlLocation(....)
> to specify the location of the wsdl so it can get the proper
> namespaces and stuff out of there.
>
> Dan
>
> On Thursday 04 October 2007, Jarada, Hussam wrote:
> > Hi,
> >
> > I am using wsdl2java tool to generate client stub library for the
> > client as follows C:\Program Files\Apache Software
> > Foundation\apache-cxf-2.0.2-incubator\bin>wsdl2java.bat -d
> > C:\svnwork\reg\trunk\reg\reg-ws\ws-madcap\src\main\java -compile
> > -all -exsh true -verbose
> > C:\svnwork\reg\trunk\reg\reg-ws\ws-madcap\src\wsdl\madcap.wsdl
> >
> > then from my client side I am calling
> > import org.apache.cxf.frontend.ClientProxyFactoryBean;
> >
> > import com.aol.madcap._2007._06.*;
> >
> > ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
> >
> > factory.setServiceClass(com.aol.madcap._2007._06.MadcapPort.class);
> >
> > factory.setAddress(getServiceURL());
> >
> > MadcapPort port = (com.aol.madcap._2007._06.MadcapPort)
> > factory.create();
> >
> > Then invoke reserveLoginId
> >
> >
> >
> > From logging
> >
> > Oct 4, 2007 11:38:06 AM
> > org.apache.cxf.service.factory.ReflectionServiceFactoryBean
> > buildServiceFromClass
> > INFO: Creating Service {http://_06._2007.madcap.aol.com/}MadcapPort
> > from class com.aol.madcap._2007._06.MadcapPort
> > Oct 4, 2007 11:39:18 AM
> > org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback
> > onClose INFO: Outbound Message
> > --------------------------------------
> > <soap:Envelope
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><r
> >es er veLoginId
> > xmlns="http://_06._2007.madcap.aol.com/";><loginIdReservation
> > xmlns:ns2="http://madc
> > ap.aol.com/2007/06"
> > reserveSeconds="5"><ns2:loginId><ns2:name>HussamJarada</ns2:name><ns
> >2: do
> > mainInfo><ns2:domain>aol.in</ns2:domain><ns2:bid>17</ns2:bid><ns2:la
> >ng -l ocale>en-in</ns2
> >
> > :lang-locale></ns2:domainInfo></ns2:loginId></loginIdReservation></r
> > :es er
> >
> > veLoginId></soap:Body></soap:Envelope>
> > --------------------------------------
> > Oct 4, 2007 11:39:19 AM
> > org.apache.cxf.interceptor.LoggingInInterceptor handleMessage
> > INFO: Inbound Message
> > --------------------------------------
> > <?xml version="1.0" encoding="ISO-8859-1"?>  <SOAP-ENV:Envelope
> >xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema
> > -instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> > xmlns:mc="http://madcap.aol.com/2006/10";><SOAP-ENV:Header/><SOAP-ENV
> >:B od y><SOAP-ENV:Fault><SOAP-ENV:faultcode>SOAP-ENV:Sende
> > r</SOAP-ENV:faultcode><SOAP-ENV:faultstring>Invalid
> > namespace</SOAP-ENV:faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></S
> >OA P- ENV:Envelope>
> >
> > --------------------------------------
> >
> > The backend server report invalid namespace cause in the soap body
> > reserveLoginId xmlns=http://_06._2007.madcap.aol.com/  at which it
> > should be xmlns:ns2="http://madc <http://madc/> ap.aol.com/2007/06"
> >
> > Can someone please help me in resolving this issue, I tried using
> > early Xfire 1.2.6, then CXF 2.0 then 2.0.1 all report issues related
> > to namespace.
> >
> > why CXF 2.0.2 wsdl2java generate a soap body with
> > xmlns="http://_06._2007.madcap.aol.com
> > <http://_06._2007.madcap.aol.com/";><loginIdReservation>  ? since the
> > wsdl we have
> >
> > Do I have issue in my wsdl2java arugments or the way I invoke the
> > web service from the ClientProxyFactoryBean?
> >
> > targetNamespace=http://madcap.aol.com/2007/06
> >
> > Thanks in advance,
> >
> > Jarada
>
> --
> J. Daniel Kulp
> Principal Engineer
> IONA
> P: 781-902-8727    C: 508-380-7194
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog



-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to