REST和嵌入式Jetty上的SOAP,SOAP可以单独工作,但是如果REST运行,则不能工作

问题描述

我有一个嵌入式Jetty实现。我只能运行REST或SOAP。添加REST服务后,我的SOAP端点将不起作用。我有以下代码来设置SOAP,然后设置REST服务。 REST服务始终有效。

设置Jetty服务器

 InetSocketAddress jettyAddress = new InetSocketAddress(tsConfig.getBindIp(),tsConfig.getPort());
        Server server = new Server(jettyAddress);
        server.setStopAtShutdown(true);

        JettyHttpServer jettyServer = new JettyHttpServer(server,true);
        final Executor executor = jettyServer.getExecutor();
        if(executor != null) {
            if (executor instanceof QueuedThreadPool) {
                ((QueuedThreadPool) executor).setName("td-jetty");
            } else {
                LOGGER.warn("Jetty executor is not of type QueuedThreadPool,but rather," + executor.getClass().toString());
            }
        }
        ContextHandlerCollection collection = new ContextHandlerCollection();
        server.setHandler(collection);

现在添加SOAP端点

 Endpoint endpoint = Endpoint.create(retailPosIntegrationService);
                endpoint.publish(jettyServer.createContext(tsConfig.getRetailPOSServiceV2().getResource()));

现在添加REST服务

 ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
                ResourceConfig resourceConfig = new ResourceConfig().register(new VisaMobileIntegrationService(initializationSingletonBean));
                ServletContainer servletContainer = new ServletContainer(resourceConfig);
                context.addServlet(new ServletHolder(new ServletContainer(resourceConfig(initializationSingletonBean))),"/*");
                server.setHandler(context);

谢谢。

解决方法

似乎我们只有一个端口并引起冲突。