2015-07-28 102 views
1

我正在使用Jetty進入Maven項目來部署一個小型Web服務器。我想在同一個項目中部署REST/SOAP服務(我正在關注This Tutorial)。如果我用Maven編譯只有REST/SOAP工作,並且如果我使用Jetty編譯,只有網頁可以工作。在同一個Maven項目中的Web服務和Web服務器

有兩個問題:
1.我該怎麼做才能使這兩個部件工作?
2. SOAP目前在CXF下。遷移到AXIS2M有多容易?

+0

可以請你添加一些代碼片段來說明問題 – Ashoka

回答

0

問題可能在於,如果您在教程鏈接中使用相同的代碼粘貼,則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嗎?我怎樣才能使用兩個端口?謝謝。 –

相關問題