You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Reza Aliakbari <ra...@gmail.com> on 2010/09/16 10:35:39 UTC

Error using @WSDLDocumentation

I use
- CXF 2.3 SNAPSHOT I got at 15 Sept 2010
- Tomcat 7.0.2 Beta

The code snippet is this:
@WebService
public interface PersonalContactManagementService extends
DomainGeneralOperation<Integer, PersonalContact> {

    @WebMethod
    @WSDLDocumentation("This method updates a personal contact.")
    public void update(PersonalContact domain);
........

The web service deployed with no issue, I could call them with no error. But
when I wanted to see the WSDL I get the following exception :

*exception*

javax.servlet.ServletException: Servlet execution threw an exception

*root cause*

java.lang.IncompatibleClassChangeError: Class
com.ibm.wsdl.OperationImpl does not implement the requested interface
javax.wsdl.WSDLElement
	org.apache.cxf.wsdl11.ServiceWSDLBuilder.addDocumentation(ServiceWSDLBuilder.java:242)
	org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildPortTypeOperation(ServiceWSDLBuilder.java:526)
	org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildPortType(ServiceWSDLBuilder.java:473)
	org.apache.cxf.wsdl11.ServiceWSDLBuilder.build(ServiceWSDLBuilder.java:188)
	org.apache.cxf.wsdl11.ServiceWSDLBuilder.build(ServiceWSDLBuilder.java:151)
	org.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHandler.java:155)
	org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:164)
	org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
	org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
	org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)

Please help

Thanks,
Reza

Re: Error using @WSDLDocumentation

Posted by Daniel Kulp <dk...@apache.org>.
Honestly, I'm not really sure.   It SOUNDS like some sort of classloader 
issue.  Can you check your tomcat install for any extra wsdl4j jars lieing 
around?   It might be findind and older version or something.

I checked the 1.6.2 version we ship and:

public class OperationImpl extends AbstractWSDLElement implements Operation
....
public abstract class AbstractWSDLElement implements WSDLElement
 
so it defintely does implement the interface.

Dan


On Thursday 16 September 2010 4:35:39 am Reza Aliakbari wrote:
> I use
> - CXF 2.3 SNAPSHOT I got at 15 Sept 2010
> - Tomcat 7.0.2 Beta
> 
> The code snippet is this:
> @WebService
> public interface PersonalContactManagementService extends
> DomainGeneralOperation<Integer, PersonalContact> {
> 
>     @WebMethod
>     @WSDLDocumentation("This method updates a personal contact.")
>     public void update(PersonalContact domain);
> ........
> 
> The web service deployed with no issue, I could call them with no error.
> But when I wanted to see the WSDL I get the following exception :
> 
> *exception*
> 
> javax.servlet.ServletException: Servlet execution threw an exception
> 
> *root cause*
> 
> java.lang.IncompatibleClassChangeError: Class
> com.ibm.wsdl.OperationImpl does not implement the requested interface
> javax.wsdl.WSDLElement
> 	org.apache.cxf.wsdl11.ServiceWSDLBuilder.addDocumentation(ServiceWSDLBuild
> er.java:242)
> org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildPortTypeOperation(ServiceWSD
> LBuilder.java:526)
> org.apache.cxf.wsdl11.ServiceWSDLBuilder.buildPortType(ServiceWSDLBuilder.
> java:473)
> org.apache.cxf.wsdl11.ServiceWSDLBuilder.build(ServiceWSDLBuilder.java:188
> )
> org.apache.cxf.wsdl11.ServiceWSDLBuilder.build(ServiceWSDLBuilder.java:151
> )
> org.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHand
> ler.java:155)
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletControlle
> r.java:164)
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServ
> let.java:142)
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Abstrac
> tHTTPServlet.java:179)
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPSer
> vlet.java:108) javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> 	org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPS
> ervlet.java:159)
> 
> Please help
> 
> Thanks,
> Reza

-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog