On 10/1/07, Simon Laws <[EMAIL PROTECTED]> wrote:
>
> With the latest trunk I'm getting the following from
> \binding-ws-axis2\src\test\java\org\apache\tuscany\sca\binding\ws\axis2\itests\QuestionMarkWSDLTestCase.java
>
> HTTP ERROR: 500
>
> javax.wsdl.extensions.UnknownExtensibilityElement
>
>  incompatible with javax.wsdl.extensions.schema.Schema
>
> RequestURI=/services/HelloWorldWebService
> Caused by:
>
> java.lang.ClassCastException: 
> javax.wsdl.extensions.UnknownExtensibilityElement incompatible with 
> javax.wsdl.extensions.schema.Schema
>       at com.ibm.wsdl.extensions.schema.SchemaSerializer.marshall
>
> (Unknown Source)
>       at com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityElements(Unknown 
> Source)
>       at com.ibm.wsdl.xml.WSDLWriterImpl.printTypes(Unknown Source)
>       at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition
> (Unknown Source)
>
>       at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)
>       at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)
>       at org.apache.axis2.description.AxisService.printDefinitionObject(
> AxisService.java:920)
>
>       at 
> org.apache.axis2.description.AxisService.printUserWSDL(AxisService.java:934)
>       at 
> org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1056)
>       at 
> org.apache.tuscany.sca.binding.ws.axis2.TuscanyListingAgent.processListService
>
> (TuscanyListingAgent.java:140)
>       at 
> org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceServlet.doGet(Axis2ServiceServlet.java:255)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
>       at javax.servlet.http.HttpServlet.service
>
> (HttpServlet.java:820)
>       at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>       at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
>       at org.mortbay.jetty.servlet.SessionHandler.handle
>
> (SessionHandler.java:181)
>       at 
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>       at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>       at org.mortbay.jetty.Server.handle
>
> (Server.java:285)
>       at 
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>       at 
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>       at org.mortbay.jetty.HttpParser.parseNext
>
> (HttpParser.java:513)
>       at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>       at org.mortbay.io.nio.SelectChannelEndPoint.run
> (SelectChannelEndPoint.java
> :368)
>       at org.apache.tuscany.sca.core.work.Jsr237Work.run(Jsr237Work.java:61)
>       at 
> org.apache.tuscany.sca.core.work.ThreadPoolWorkManager$DecoratingWork.run(ThreadPoolWorkManager.java:205)
>
>       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
> (ThreadPoolExecutor.java:665)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>       at java.lang.Thread.run(Thread.java
> :801)
>
> *Powered by Jetty:// <http://jetty.mortbay.org/>*
>
> I've made some changes locally in binding-ws-axis2 although nothing to do
> with reading wsdl so am trying to work out if this is to do with my changes
> or not. Anyone else seeing it?
>
> Simon
>

It seems to be related to the memory optimization changes that went in with
r580611. If I re-enable the schema extension for WSDL4J then the problem
goes away.

    public WSDLModelResolver(Contribution contribution,
ModelFactoryExtensionPoint modelFactories) {
        this.contribution = contribution;

        this.wsdlFactory = modelFactories.getFactory(WSDLFactory.class);
        this.wsdl4jFactory = modelFactories.getFactory(
javax.wsdl.factory.WSDLFactory.class);
        this.contributionFactory = modelFactories.getFactory (
ContributionFactory.class);

        wsdlExtensionRegistry =
this.wsdl4jFactory.newPopulatedExtensionRegistry();
        // REVIEW: [rfeng] Disable the schema extension for WSDL4J to avoid
aggressive loading
/*
        ExtensionDeserializer deserializer = new
UnknownExtensionDeserializer();
        for (QName schema : XSD_QNAME_LIST) {
            wsdlExtensionRegistry.registerDeserializer(Types.class, schema,
deserializer);
        }
*/
    }

There seems to be quite a lot of changes for this fix. Raymond, could you
give us a quick run through of what the changes do?

Regards

Simon

Reply via email to