[
https://issues.apache.org/jira/browse/CXF-631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12493532
]
Daniel Kulp commented on CXF-631:
---------------------------------
Digging into the code some more, it's not QUITE as bad as I thought. The
tools are using the service model and stuff, but there is an issue in the SOAP
code.
Basically, the SoapTransportFactory is whats going through and adding all the
SOAP extensors. However, that only works if the transport you are using is
the SoapTransportFactory. At runtime, the transport could be something else
(like straight HTTP). Thus, the extensors aren't added.
This needs to be cleaned up. The binding extensors need to be created in the
SoapBindingFactory. The only one the SoapTransportFactory should care about
is the soap:address in the port.
That said, much of the code for creating the extensors is in tools/common. i
think most of that should be moved into the soap binding. The tools shouldn't
really have much "soap" code in them.
> Regression in simple front end WSDL auto-generation
> ---------------------------------------------------
>
> Key: CXF-631
> URL: https://issues.apache.org/jira/browse/CXF-631
> Project: CXF
> Issue Type: Bug
> Components: Transports
> Affects Versions: 2.0-RC
> Environment: Windows XP
> Reporter: Oisin Hurley
> Assigned To: Bozhong Lin
>
> since rev 532926 it is not possible to generate the wsdl at runtime anymore.
> I start the server with
> JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
> factory.setServiceClass(JaxWsService.class);
> factory.setAddress("http://localhost:9001/jaxwstest");
> factory.setServiceBean(service);
> Server server = factory.create();
> The JaxWsService is a JAX-WS annotated class. With rev 532895 and below I can
> get the wsdl with
> http://localhost:9001/jaxwstest?wsdl
> Now, the error message is
> java.lang.ClassCastException: org.xmlsoap.schemas.wsdl.http.AddressType
> cannot be cast to javax.wsdl.extensions.http.HTTPAddress
> at
> com.ibm.wsdl.extensions.http.HTTPAddressSerializer.marshall(Unknown Source)
> at com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityElements(Unknown
> Source)
> at com.ibm.wsdl.xml.WSDLWriterImpl.printPorts(Unknown Source)
> at com.ibm.wsdl.xml.WSDLWriterImpl.printServices(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.getDocument(Unknown Source)
> at
> org.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHandler.java:139)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:152)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:54)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> 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:457)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
> at
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.