[ https://issues.apache.org/jira/browse/CXF-8383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17245922#comment-17245922 ]
olivier dufour commented on CXF-8383: ------------------------------------- hello, I have found a solution by implementing wrapper servlet request and response with vertx routingConfig in it. Most of things must work. but I am stuck with registration of transport. I have register my custom transport with DestinationFactoryManager dfm = this.bus.getExtension(DestinationFactoryManager.class); destinationFactory = new VertxDestinationFactory(); dfm.registerDestinationFactory("http://cxf.apache.org/transports/quarkus", destinationFactory); ConduitInitiatorManager extension = bus.getExtension(ConduitInitiatorManager.class); extension.registerConduitInitiator("http://cxf.apache.org/transports/quarkus", destinationFactory); bus.setExtension(destinationFactory, HttpDestinationFactory.class); when I handle vertx request I call ((VertxDestination) d).invoke(event); {code:java} public class VertxDestination extends JAXWSHttpSpiDestination { public VertxDestination(EndpointInfo endpointInfo, Bus bus, DestinationRegistry destinationRegistry) throws IOException { super(bus, destinationRegistry, endpointInfo); } @Override protected Logger getLogger() { return null; } @Override public EndpointReferenceType getAddress() { return super.getAddress(); } public void invoke(RoutingContext context) throws IOException { VertxHttpServletRequest req = new VertxHttpServletRequest(context); VertxHttpServletResponse resp = new VertxHttpServletResponse(context); doService(req, resp); } }{code} The issue is that I get an exception: java.lang.NullPointerException at org.apache.cxf.transport.http_jaxws_spi.JAXWSHttpSpiDestination.serviceRequest(JAXWSHttpSpiDestination.java:95) at org.apache.cxf.transport.http_jaxws_spi.JAXWSHttpSpiDestination.doService(JAXWSHttpSpiDestination.java:68) at io.quarkiverse.cxf.transport.VertxDestination.invoke(VertxDestination.java:33) at io.quarkiverse.cxf.transport.CxfHandler.process(CxfHandler.java:272) at io.quarkiverse.cxf.transport.CxfHandler.handle(CxfHandler.java:189) at io.quarkiverse.cxf.transport.CxfHandler.handle(CxfHandler.java:37) at io.vertx.ext.web.impl.BlockingHandlerDecorator.lambda$handle$0(BlockingHandlerDecorator.java:48) at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:313) it mean that incomingObserver is null. But what is the purpose of this incomingObserver and why it is null is a mystery to me. So if you could enlight me. I will be thanksfull. > cxf support for vertx destination > --------------------------------- > > Key: CXF-8383 > URL: https://issues.apache.org/jira/browse/CXF-8383 > Project: CXF > Issue Type: New Feature > Components: Transports > Reporter: olivier dufour > Priority: Major > Fix For: 3.4.1 > > > Hello, > I am working on cxf quarkus extension. And quarkus is migrating from servlet > to vertx routing system. Anyway, I try to make a custom detination/conduit > but it seems that cxf have tight integration with servlet. I try to make my > own invoke with > HttpServerRequest req, HttpServerResponse res, RoutingContext ctx > instead of > invoke(final ServletConfig config, final ServletContext context, final > HttpServletRequest req, > final HttpServletResponse resp) > but when I see that InMessage store servlet request and servlet response as > attribute, I am affraid that this not doable. > So, Another solution is to do a wrapper httpServletRequest class which wrap > the vertx httpserverrequest. > > Anyway, in term of architecture, why inMessage do not store body, uri, query > param, ... instead of the servlet objects (request, context)? -- This message was sent by Atlassian Jira (v8.3.4#803005)