在同一个Maven项目中的Web服务和Web服务器

问题描述:

我正在使用Jetty进入Maven项目来部署一个小型Web服务器。我想在同一个项目中部署REST/SOAP服务(我正在关注This Tutorial)。如果我用Maven编译只有REST/SOAP工作,并且如果我使用Jetty编译,只有网页可以工作。在同一个Maven项目中的Web服务和Web服务器

有两个问题:
1.我该怎么做才能使这两个部件工作?
2. SOAP目前在CXF下。迁移到AXIS2M有多容易?

+0

可以请你添加一些代码片段来说明问题 – Ashoka

问题可能在于,如果您在教程链接中使用相同的代码粘贴,则Main.java不会注册CXFServlet。现在,您需要在两个单独的端口号上进行两种配置,即一个用于Web应用程序,另一个用于SOAP服务。这将解决问题。

所以主类需要进行修改,以有类似以前的和新的块代码如下:

Server server = new Server(9090); 


    // Register and map the dispatcher servlet 

    final ServletHolder servletHolder = new ServletHolder(new CXFServlet()); 

    final ServletContextHandler context = new ServletContextHandler(); 

    context.setContextPath("/"); 
    context.addServlet(servletHolder, "/rest/*"); 
    context.addEventListener(new ContextLoaderListener()); 
    context.setInitParameter("contextClass", AnnotationConfigWebApplicationContext.class.getName()); 
    context.setInitParameter("contextConfigLocation", AppConfig.class.getName());  

    server.setHandler(context); 

    server.start(); 

    server.join(); 

来源:http://aredko.blogspot.co.uk/2014/09/embedded-jetty-and-apache-cxf-secure.html

希望这有助于

+0

谢谢Ashok。您在代码中提供给我的一些库来自Spring。我们想避免使用Spring,因为我们的开发过于沉重。我们可以使用这些库而不使用Spring吗?我怎样才能使用两个端口?谢谢。 –